KR102476541B1 - Method and apparatus of image encoding/decoding using reference pixel composition in intra prediction - Google Patents

Method and apparatus of image encoding/decoding using reference pixel composition in intra prediction Download PDF

Info

Publication number
KR102476541B1
KR102476541B1 KR1020190037713A KR20190037713A KR102476541B1 KR 102476541 B1 KR102476541 B1 KR 102476541B1 KR 1020190037713 A KR1020190037713 A KR 1020190037713A KR 20190037713 A KR20190037713 A KR 20190037713A KR 102476541 B1 KR102476541 B1 KR 102476541B1
Authority
KR
South Korea
Prior art keywords
block
prediction
picture
current
reference picture
Prior art date
Application number
KR1020190037713A
Other languages
Korean (ko)
Other versions
KR20190038530A (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 돌비 레버러토리즈 라이쎈싱 코오포레이션
Publication of KR20190038530A publication Critical patent/KR20190038530A/en
Application granted granted Critical
Publication of KR102476541B1 publication Critical patent/KR102476541B1/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
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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
    • 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/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution

Landscapes

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

Abstract

화면 내 예측을 수행하는 영상 부호화 및 복호화 방법이 개시된다. 현재 블록과 이웃한 블록 각각의 예측 모드를 고려하여, 상기 이웃한 블록 내의 경계 화소를 상기 현재 블록의 참조 화소로 이용 가능한지 여부를 결정하는 단계, 결정한 결과에 따라, 상기 현재 블록의 참조 화소를 획득하는 단계, 상기 획득한 참조 화소에 기초하여 화면 내 예측된 예측 블록을 생성하는 단계, 상기 생성한 예측 블록을 이용하여 상기 현재 블록을 부호화하는 단계를 포함한다. 따라서, 화면내 예측에 있어 참조 화소 구성을 개선함으로써 예측의 정확도를 향상시킬 수 있다. 또한, 화면내 예측에 있어 예측의 정확도를 높임으로써 영상의 부호화 효율을 향상시킬 수 있다.An image encoding and decoding method for performing intra-prediction is disclosed. Determining whether a boundary pixel in the neighboring block can be used as a reference pixel of the current block in consideration of a prediction mode of each of the current block and neighboring blocks, obtaining a reference pixel of the current block according to the determination result and generating a prediction block within a picture based on the obtained reference pixel, and encoding the current block using the generated prediction block. Therefore, prediction accuracy can be improved by improving the reference pixel configuration in intra-prediction. In addition, encoding efficiency of an image can be improved by increasing prediction accuracy in intra-prediction.

Description

화면내 예측에서의 참조 화소 구성에 관한 부호화/복호화 방법 및 장치{METHOD AND APPARATUS OF IMAGE ENCODING/DECODING USING REFERENCE PIXEL COMPOSITION IN INTRA PREDICTION}Encoding/decoding method and apparatus for reference pixel configuration in intra-prediction

본 발명은 영상 부호화 및 복호화 기술에 관한 것으로, 더욱 상세하게는, 화면내 예측에서의 참조 화소 구성에 관한 부호화/복호화 방법 및 장치에 관한 것이다.The present invention relates to image encoding and decoding technology, and more particularly, to an encoding/decoding method and apparatus for a reference pixel configuration in intra-prediction.

인터넷과 휴대 단말의 보급과 정보 통신 기술의 발전에 따라 멀티미디어 데이터에 대한 이용이 급증하고 있다. 따라서, 각종 시스템에서 영상 예측을 통해 다양한 서비스나 작업을 수행하기 위하여 영상 처리 시스템의 성능 및 효율 개선에 대한 필요성이 상당히 증가하고 있으나, 이러한 분위기에 호응할 수 있는 연구 개발 결과가 미흡한 실정이다.With the spread of the Internet and portable terminals and the development of information and communication technology, the use of multimedia data is rapidly increasing. Therefore, in order to perform various services or tasks through image prediction in various systems, the need for improving the performance and efficiency of image processing systems is significantly increasing, but research and development results that can respond to this atmosphere are insufficient.

이와 같이, 종래 기술의 영상 부호화 복호화 방법 및 장치에서는 영상 처리 특히 영상 부호화 또는 영상 복호화에 대한 성능 개선이 요구되고 있는 실정이다.As described above, in the video encoding/decoding method and apparatus of the related art, improvement in performance of video processing, particularly video encoding or video decoding, is required.

상기와 같은 과제를 해결하기 위한 본 발명의 목적은, 참조 화소 구성을 개선하여 영상을 부호화/복호화 방법을 제공하는데 있다.An object of the present invention to solve the above problems is to provide a method of encoding/decoding an image by improving a reference pixel configuration.

본 발명의 다른 목적은, 참조 화소 구성을 개선하여 영상을 부호화/복호화 장치를 제공하는데 있다.Another object of the present invention is to provide an apparatus for encoding/decoding an image by improving a reference pixel configuration.

상술한 본 발명의 목적을 달성하기 위한 본 발명의 일 측면에 따른 화면 내 예측을 수행하는 영상 부호화 방법은, 현재 블록과 이웃한 블록 각각의 예측 모드를 고려하여, 이웃한 블록 내의 경계 화소를 현재 블록의 참조 화소로 이용 가능한지 여부를 결정하는 단계, 결정한 결과에 따라, 현재 블록의 참조 화소를 획득하는 단계, 획득한 참조 화소에 기초하여 화면 내 예측된 예측 블록을 생성하는 단계 및 생성한 예측 블록을 이용하여 현재 블록을 부호화하는 단계를 포함할 수 있다.In order to achieve the above object of the present invention, an image encoding method for performing intra-prediction according to an aspect of the present invention considers a prediction mode of each of a current block and a neighboring block, and selects a boundary pixel in a neighboring block as a current block. Determining whether a block can be used as a reference pixel, obtaining a reference pixel of the current block according to the determination result, generating a predicted prediction block within a picture based on the obtained reference pixel, and generating the prediction block It may include encoding the current block using .

여기서, 참조 화소를 획득하는 단계는, 경계 화소가 현재 블록의 참조 화소로 이용 불가능한 것으로 결정되었으면, 미리 설정된 화소 값으로 구성한 참조 화소를 획득할 수 있다.Here, in the step of acquiring the reference pixel, if it is determined that the boundary pixel is unavailable as the reference pixel of the current block, a reference pixel configured with a preset pixel value may be obtained.

여기서, 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 미리 설정된 플래그가 이웃한 블록의 예측 모드를 고려할 것인지 여부를 지시할 수 있다.Here, the step of determining whether the block is usable as a reference pixel may indicate whether a preset flag is to consider the prediction mode of a neighboring block.

여기서, 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 이웃한 블록의 예측 모드가 화면 내 예측이면, 경계 화소를 현재 픽쳐의 참조 화소로 이용 가능한 것으로 결정할 수 있다.Here, in the step of determining whether the block can be used as a reference pixel, if the prediction mode of the neighboring block is intra-prediction, it may be determined that the boundary pixel can be used as a reference pixel of the current picture.

여기서, 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 이웃한 블록의 예측 모드가 화면 간 예측이면, 경계 화소를 현재 픽쳐의 참조 화소로 이용 불가능한 것으로 결정할 수 있다.Here, in the step of determining whether the pixel can be used as a reference pixel, if the prediction mode of the neighboring block is inter-prediction, it may be determined that the boundary pixel is unavailable as a reference pixel of the current picture.

여기서, 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 이웃한 블록의 예측 모드가 화면 간 예측인 경우, 이웃한 블록의 참조 픽쳐를 고려하여, 경계 화소를 현재 픽쳐의 참조 화소로 이용가능한지 여부를 결정할 수 있다.Here, the step of determining whether a border pixel can be used as a reference pixel is, when the prediction mode of the neighboring block is inter-prediction, considering the reference picture of the neighboring block, whether or not the boundary pixel can be used as a reference pixel of the current picture. can decide

여기서, 참조 픽쳐는, 현재 픽쳐 이전의 참조 픽쳐들에 대한 데이터를 저장하는 리스트 0 또는 현재 픽쳐 이후의 참조 픽쳐들에 대한 데이터를 저장하는 리스트 1에서 선택되고, 현재 픽쳐가 리스트 0 또는 리스트 1에 포함될 수 있다.Here, the reference picture is selected from list 0, which stores data for reference pictures preceding the current picture, or list 1, which stores data for reference pictures subsequent to the current picture, and the current picture is in list 0 or list 1. can be included

여기서, 이웃한 블록의 참조 픽쳐가 현재 픽쳐인 경우에는, 경계 화소를 현재 픽쳐의 참조 화소로 이용 가능한 것으로 결정할 수 있다.Here, when the reference picture of the neighboring block is the current picture, it can be determined that the boundary pixel can be used as a reference pixel of the current picture.

여기서, 이웃한 블록의 참조 픽쳐가 현재 픽쳐가 아닌 경우에는, 경계 화소를 현재 픽쳐의 참조 화소로 이용 불가능한 것으로 결정할 수 있다.Here, if the reference picture of the neighboring block is not the current picture, it may be determined that the boundary pixel is unavailable as a reference pixel of the current picture.

여기서, 이웃한 블록의 참조 픽쳐가 I 픽쳐인 경우, 경계 화소를 현재 픽쳐의 참조 화소로 이용 가능한 것으로 결정할 수 있다.Here, when the reference picture of the neighboring block is an I picture, a boundary pixel may be determined to be usable as a reference pixel of the current picture.

상술한 본 발명의 다른 목적을 달성하기 위한 본 발명의 다른 측면에 따른 화면 내 예측을 수행하는 영상 복호화 방법은, 현재 블록 및 현재 블록과 이웃한 블록의 예측 모드에 관한 데이터를 포함하는 비트 스트림을 수신하는 단계, 수신된 비트스트림으로부터 데이터를 추출하여, 이웃한 블록의 예측 모드를 확인하는 단계, 이웃한 블록의 예측 모드를 고려하여, 이웃한 블록 내의 경계 화소를 현재 블록의 참조 화소로 이용 가능한지 여부를 결정하는 단계, 결정한 결과에 따라, 현재 블록의 참조 화소를 획득하는 단계, 획득한 참조 화소에 기초하여 화면 내 예측된 예측 블록을 생성하는 단계 및 생성한 예측 블록을 이용하여 현재 블록을 복호화하는 단계를 포함한다.In order to achieve the above-described other object of the present invention, a video decoding method for performing intra-prediction according to another aspect of the present invention includes a bit stream including data about a current block and a prediction mode of a block adjacent to the current block. Receiving, extracting data from the received bitstream, and checking the prediction mode of the neighboring block, considering the prediction mode of the neighboring block, whether a boundary pixel in the neighboring block can be used as a reference pixel of the current block. Determining whether or not, obtaining a reference pixel of the current block according to the determined result, generating a predicted prediction block in the picture based on the obtained reference pixel, and decoding the current block using the generated prediction block It includes steps to

여기서, 참조 화소를 획득하는 단계는, 경계 화소가 현재 블록의 참조 화소로 이용 불가능한 것으로 결정되었으면, 미리 설정된 화소 값으로 구성한 참조 화소를 획득할 수 있다.Here, in the step of acquiring the reference pixel, if it is determined that the boundary pixel is unavailable as the reference pixel of the current block, a reference pixel configured with a preset pixel value may be obtained.

여기서 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 미리 설정된 플래그가 이웃한 블록의 예측 모드를 고려할 것인지 여부를 지시할 수 있다.Here, the step of determining whether a block can be used as a reference pixel may indicate whether a preset flag is to consider a prediction mode of a neighboring block.

여기서, 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 이웃한 블록의 예측 모드가 화면 내 예측이면, 경계 화소를 현재 픽쳐의 참조 화소로 이용 가능한 것으로 결정할 수 있다.Here, in the step of determining whether the block can be used as a reference pixel, if the prediction mode of the neighboring block is intra-prediction, it may be determined that the boundary pixel can be used as a reference pixel of the current picture.

여기서, 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 이웃한 블록의 예측 모드가 화면 간 예측이면, 경계 화소를 현재 픽쳐의 참조 화소로 이용 불가능한 것으로 결정할 수 있다.Here, in the step of determining whether the pixel can be used as a reference pixel, if the prediction mode of the neighboring block is inter-prediction, it may be determined that the boundary pixel is unavailable as a reference pixel of the current picture.

여기서, 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 이웃한 블록의 예측 모드가 화면 간 예측인 경우, 이웃한 블록의 참조 픽쳐를 고려하여, 경계 화소를 현재 픽쳐의 참조 화소로 이용가능한지 여부를 결정할 수 있다.Here, the step of determining whether a border pixel can be used as a reference pixel is, when the prediction mode of the neighboring block is inter-prediction, considering the reference picture of the neighboring block, whether or not the boundary pixel can be used as a reference pixel of the current picture. can decide

여기서, 참조 픽쳐는, 현재 픽쳐 이전의 참조 픽쳐들에 대한 데이터를 저장하는 리스트 0 또는 현재 픽쳐 이후의 참조 픽쳐들에 대한 데이터를 저장하는 리스트 1에서 선택되고, 현재 픽쳐가 리스트 0 또는 리스트 1에 포함될 수 있다.Here, the reference picture is selected from list 0, which stores data for reference pictures preceding the current picture, or list 1, which stores data for reference pictures subsequent to the current picture, and the current picture is in list 0 or list 1. can be included

여기서, 이웃한 블록의 참조 픽쳐가 현재 픽쳐인 경우에는, 경계 화소를 현재 픽쳐의 참조 화소로 이용 가능한 것으로 결정할 수 있다.Here, when the reference picture of the neighboring block is the current picture, it can be determined that the boundary pixel can be used as a reference pixel of the current picture.

여기서, 이웃한 블록의 참조 픽쳐가 현재 픽쳐가 아닌 경우에는, 이웃한 블록 내의 화소를 현재 픽쳐의 참조 화소로 이용 불가능한 것으로 결정할 수 있다.Here, when the reference picture of the neighboring block is not the current picture, pixels in the neighboring block may be determined to be unavailable as reference pixels of the current picture.

여기서, 이웃한 블록의 참조 픽쳐가 I 픽쳐인 경우, 이웃한 블록 내의 화소를 현재 픽쳐의 참조 화소로 이용 가능한 것으로 결정할 수 있다.Here, when the reference picture of the neighboring block is an I picture, pixels in the neighboring block may be determined to be usable as reference pixels of the current picture.

상술한 본 발명의 다른 목적을 달성하기 위한 본 발명의 다른 측면에 따른 하나 이상의 프로세서들을 포함하는 영상 복호화 장치에서, 하나 이상의 프로세서들은, 현재 블록 및 현재 블록과 이웃한 블록의 예측 모드에 관한 데이터를 포함하는 비트 스트림을 수신하고, 수신된 비트스트림으로부터 데이터를 추출하여, 이웃한 블록의 예측 모드를 확인한 후, 이웃한 블록의 예측 모드를 고려하여, 이웃한 블록 내의 경계 화소를 현재 블록의 참조 화소로 이용 가능한지 여부를 결정하고, 결정한 결과에 따라, 현재 블록의 참조 화소를 획득하며, 획득한 참조 화소에 기초하여 화면 내 예측된 예측 블록을 생성하고, 생성한 예측 블록을 이용하여 현재 블록을 복호화할 수 있다.In an image decoding apparatus including one or more processors according to another aspect of the present invention for achieving the above-described other object of the present invention, the one or more processors transmit data about a current block and a prediction mode of a block adjacent to the current block. After receiving a bit stream containing a bit stream, extracting data from the received bit stream, checking the prediction mode of a neighboring block, considering the prediction mode of the neighboring block, a boundary pixel in the neighboring block is selected as a reference pixel of the current block. It is determined whether it is available as , according to the determined result, a reference pixel of the current block is obtained, a predicted prediction block within the picture is generated based on the obtained reference pixel, and the current block is decoded using the generated prediction block. can do.

상술한 바와 같은 본 발명의 실시예에 따른 영상 부호화/복호화 방법 및 장치를 이용할 경우에는, 화면내 예측에 있어 참조 화소 구성을 개선함으로써 예측의 정확도를 향상시킬 수 있다. In the case of using the video encoding/decoding method and apparatus according to the embodiment of the present invention as described above, prediction accuracy can be improved by improving the reference pixel configuration in intra prediction.

또한, 화면내 예측에 있어 예측의 정확도를 높임으로써 영상의 부호화 효율을 향상시킬 수 있다. In addition, encoding efficiency of an image can be improved by increasing prediction accuracy in intra-prediction.

도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 2는 본 발명의 실시예에 따른, 영상 부호화 장치에 대한 구성도이다.
도 3은 본 발명의 실시예에 따른, 영상 복호화 장치에 대한 구성도이다.
도 4는 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 P 슬라이스의 화면 간 예측을 나타낸 예시도이다.
도 5는 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 B 슬라이스의 화면 간 예측을 나타낸 예시도이다.
도 6은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 단방향으로 예측 블록을 생성하는 경우를 설명하기 위한 예시도이다.
도 7은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 참조 픽쳐 리스트로부터 구성하는 예시도이다.
도 8은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 참조 픽쳐 리스트로부터 화면 간 예측을 수행하는 경우의 다른 예를 나타낸 예시도이다.
도 9는 본 발명의 일실시예에 따른 영상 부호화 방법에서 화면 내 예측을 설명하기 위한 예시도이다.
도 10은 본 발명의 일실시예에 따른 영상 부호화 방법에서 P 슬라이스나 B 슬라이스에서의 예측 원리를 설명하기 위한 예시도이다.
도 11은 예측 블록을 획득하는 과정을 설명하기 위한 예시도이다.
도 12는 본 발명의 일실시예에 따른 영상 부호화 방법의 주요 과정을 코딩 단위(coding unit)에서의 신택스로 설명하기 위한 예시도이다.
도 13은 현재 픽쳐에서 블록매칭을 통해 예측 블록을 생성할 경우, 화면 간 예측에서와 같이 대칭형(symmetric type) 분할 또는 비대칭형(asymmetric type) 분할을 지원하는 예를 설명하기 위한 예시도이다.
도 14는 화면 간 예측(Inter)에서 2N×2N, N×N을 지원할 수 있음을 설명하기 위한 예시도이다.
도 15는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드를 설명하기 위한 예시도이다.
도 16a는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드를 고려한 참조 화소 이용 가부을 설명하기 위한 예시도이다.
도 16b는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드를 고려하지 않은, 참조 화소 이용 가부을 설명하기 위한 예시도이다.
도 17은, 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드를 설명하기 위한 또 다른 예시도이다.
도 18a는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드가 화면 내 예측인 경우를 설명하는 예시도이다.
도 18b는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드와 참조 픽쳐를 고려한 것을 설명하는 예시도이다.
도 18c는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드를 고려하지 않는 경우를 설명하기 위한 또 다른 예시도이다.
도 19a은, 이용가능한 이웃한 블록이 좌하단에 있는 블록인 경우, 참조 화소를 획득하는 방법을 설명하는 예시도이다.
도 19b는, 이용가능한 이웃한 블록이 우상단에 있는 블록인 경우, 참조 화소를 획득하는 방법을 설명하는 예시도이다.
도 19c는 이용가능한 이웃한 블록이 좌하단 및 우상단에 있는 블록인 경우, 참조 화소를 획득하는 방법을 설명하는 예시도이다.
도 19d는 이용가능한 이웃한 블록이 좌상단 및 우상단에 있는 블록인 경우, 참조 화소를 획득하는 방법을 설명하는 예시도이다.
도 20은 본 발명의 실시예에 따른 영상 부호화 방법의 흐름도이다.
1 is a conceptual diagram of an image encoding and decoding system according to an embodiment of the present invention.
2 is a configuration diagram of an image encoding apparatus according to an embodiment of the present invention.
3 is a configuration diagram of a video decoding apparatus according to an embodiment of the present invention.
4 is an exemplary diagram illustrating inter prediction of P slices in an image encoding and decoding method according to an embodiment of the present invention.
5 is an exemplary diagram illustrating inter prediction of a B slice in an image encoding and decoding method according to an embodiment of the present invention.
6 is an exemplary diagram for explaining a case of generating a prediction block in one direction in an image encoding and decoding method according to an embodiment of the present invention.
7 is an exemplary view of constructing a reference picture list in an image encoding and decoding method according to an embodiment of the present invention.
8 is an exemplary diagram illustrating another example of performing inter prediction from a reference picture list in an image encoding and decoding method according to an embodiment of the present invention.
9 is an exemplary diagram for explaining intra-prediction in an image encoding method according to an embodiment of the present invention.
10 is an exemplary diagram for explaining a prediction principle in a P slice or a B slice in an image encoding method according to an embodiment of the present invention.
11 is an exemplary diagram for explaining a process of obtaining a prediction block.
12 is an exemplary diagram for explaining a main process of an image encoding method according to an embodiment of the present invention with syntax in a coding unit.
13 is an exemplary diagram for explaining an example of supporting symmetric type splitting or asymmetric type splitting as in inter prediction when a prediction block is generated through block matching in a current picture.
14 is an exemplary diagram for explaining that 2N×2N and N×N can be supported in inter prediction (Inter).
15 is an exemplary view for explaining an encoding mode of a neighboring block in intra prediction according to an embodiment of the present invention.
16A is an exemplary diagram for explaining whether to use a reference pixel in consideration of an encoding mode of a neighboring block in intra prediction according to an embodiment of the present invention.
16B is an exemplary diagram for explaining whether or not a reference pixel is used without considering the coding mode of a neighboring block in intra prediction according to an embodiment of the present invention.
17 is another exemplary diagram for explaining an encoding mode of a neighboring block in intra prediction according to an embodiment of the present invention.
18A is an exemplary view illustrating a case in which an encoding mode of a neighboring block is intra prediction in intra prediction according to an embodiment of the present invention.
18B is an exemplary view illustrating consideration of coding modes and reference pictures of neighboring blocks in intra prediction according to an embodiment of the present invention.
18C is another exemplary diagram for explaining a case in which encoding modes of neighboring blocks are not considered in intra prediction according to an embodiment of the present invention.
19A is an exemplary view illustrating a method of obtaining a reference pixel when an available neighboring block is a block in the lower left corner.
19B is an exemplary view illustrating a method of obtaining a reference pixel when an available neighboring block is a block in the upper right corner.
19C is an exemplary diagram explaining a method of obtaining a reference pixel when available neighboring blocks are blocks in lower left and upper right corners.
19D is an exemplary view illustrating a method of obtaining a reference pixel when available neighboring blocks are upper left and upper right blocks.
20 is a flowchart of an image encoding method according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Since the present invention can make various changes and have various embodiments, specific embodiments are illustrated in the drawings and described in detail. However, this is not intended to limit the present invention to specific embodiments, and should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. Terms such as first, second, A, and B may be used to describe various components, but the components should not be limited by the terms. These terms are only used for the purpose of distinguishing one component from another. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element, without departing from the scope of the present invention. The terms and/or include any combination of a plurality of related recited items or any of a plurality of related recited items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.It is understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, but other elements may exist in the middle. It should be. On the other hand, when an element is referred to as “directly connected” or “directly connected” to another element, it should be understood that no other element exists in the middle.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in this application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this application, the terms "include" or "have" are intended to designate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, but one or more other features It should be understood that the presence or addition of numbers, steps, operations, components, parts, or combinations thereof is not precluded.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in this application, they should not be interpreted in an ideal or excessively formal meaning. don't

통상적으로 동영상은 일련의 픽쳐(Picture)로 구성될 수 있으며, 각 픽쳐들은 블록(Block)과 같은 소정의 영역으로 분할될 수 있다. 또한, 분할된 영역은 블록(Block)뿐 아니라, CTU(Coding Tree Unit), CU(Coding Unit), PU(Prediction Unit), TU(Transform Unit)과 같이 다양한 크기 또는 용어로 지칭할 수 있다. 각 유닛(Unit)은 하나의 휘도 블록과 두 개의 색차 블록으로 구성될 수 있으며, 이는 컬러 포맷에 따라 달리 구성될 수 있다. 또한, 컬러 포맷에 따라 휘도 블록과 색차 블록의 크기가 결정될 수 있다. 예를 들어, 4:2:0인 경우 색차 블록의 크기는 휘도 블록의 가로, 세로가 1/2인 길이를 가질 수 있다. 이 단위에 대해서는 기존의 HEVC 또는 H.264/AVC 등의 용어를 참조할 수 있다. 본 발명에서는 블록과 상기 용어들을 혼용하여 사용하였으나, 표준 기술에 따라 달리 이해될 수 있고, 그러한 표준 기술에 따른 부호화 및 복호화 과정에 따라 상응하는 용어 또는 단위로 이해되어야 한다.In general, a moving picture may be composed of a series of pictures, and each picture may be divided into predetermined areas such as blocks. In addition, the divided region may be referred to as a block, as well as various sizes or terms such as a coding tree unit (CTU), a coding unit (CU), a prediction unit (PU), and a transform unit (TU). Each unit may be composed of one luminance block and two chrominance blocks, which may be configured differently according to color formats. Also, the size of the luminance block and the chrominance block may be determined according to the color format. For example, in the case of 4:2:0, the size of the chrominance block may have a length equal to half the length and width of the luminance block. For this unit, existing terms such as HEVC or H.264/AVC may be referred to. In the present invention, block and the above terms are used interchangeably, but may be understood differently according to standard technologies, and should be understood as corresponding terms or units according to encoding and decoding processes according to such standard technologies.

또한, 현재 블록 또는 현재 화소를 부호화하거나 복호화하는데 참조되는 픽쳐, 블록 또는 화소를 참조 픽쳐(Reference Picture), 참조 블록(Reference Block) 또는 참조 화소(Reference Pixel)라고 한다. 또한, 이하에 기재된 "픽쳐(picture)"이라는 용어는 영상(image), 프레임(frame) 등과 같은 동등한 의미를 갖는 다른 용어로 대치되어 사용될 수 있음을 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있다In addition, a picture, block, or pixel referred to for encoding or decoding a current block or current pixel is referred to as a reference picture, reference block, or reference pixel. In addition, those of ordinary skill in the art to which this embodiment pertains that the term "picture" described below may be replaced with other terms having equivalent meanings such as image and frame. You can understand when you grow up

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다. Hereinafter, with reference to the accompanying drawings, preferred embodiments of the present invention will be described in more detail. In order to facilitate overall understanding in the description of the present invention, the same reference numerals are used for the same components in the drawings, and redundant descriptions of the same components are omitted.

도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.1 is a conceptual diagram of an image encoding and decoding system according to an embodiment of the present invention.

도 1을 참조하면, 영상 부호화 장치(12) 및 복호화 장치(11)는 개인용 컴퓨터(PC:Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 무선 통신 단말기(Wireless Communication Terminal), 스마트폰(Smart Phone), TV 등과 같은 사용자 단말기이거나 응용 서버와 서비스 서버 등 서버 단말기일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하거나 복호화하거나 부호화 또는 복호화를 위해 인터 또는 인트라 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리(memory, 18), 프로그램을 실행하여 연산 및 제어하기 위한 프로세서(processor, 14) 등을 구비하는 다양한 장치를 포함할 수 있다. 또한, 영상 부호화 장치(12)에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망(Network) 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등과 같은 다양한 통신 인터페이스를 통해 영상 복호화 장치로 전송되어 영상 복호화 장치에서 복호화되어 영상으로 복원되고 재생될 수 있다.Referring to FIG. 1, an image encoding device 12 and a decoding device 11 include a personal computer (PC), a notebook computer, a personal digital assistant (PDA), and a portable multimedia player (PMP). Player), PlayStation Portable (PSP: PlayStation Portable), wireless communication terminal (Wireless Communication Terminal), smart phone (Smart Phone), TV, etc., or server terminals such as application servers and service servers, and various devices or A communication device such as a communication modem to communicate with a wired/wireless communication network, a memory (memory, 18) to store various programs and data for encoding or decoding images, or inter or intra prediction for encoding or decoding, and program execution It may include various devices having a processor (processor, 14) for calculation and control. In addition, the video encoded as a bitstream by the video encoding device 12 is transmitted through a wired or wireless communication network such as the Internet, a local area wireless communication network, a wireless LAN network, a WiBro network, or a mobile communication network in real time or non-real time, or through a cable or universal It can be transmitted to an image decoding device through various communication interfaces such as a serial bus (USB: Universal Serial Bus), decoded in the image decoding device, and restored and reproduced as an image.

또한, 영상 부호화 장치에 의해 비트스트림으로 부호화된 영상은 컴퓨터 판독 가능한 기록 매체를 통하여 부호화 장치에서 복호화 장치로 전달될 수도 있다.Also, an image encoded into a bitstream by an image encoding device may be transmitted from an encoding device to a decoding device through a computer-readable recording medium.

도 2는 본 발명의 일실시예에 따른 영상 부호화 장치에 대한 블록도이다. 도 3은 본 발명의 일실시예에 따른 영상 복호화 장치에 대한 블록도이다.2 is a block diagram of an image encoding apparatus according to an embodiment of the present invention. 3 is a block diagram of an image decoding apparatus according to an embodiment of the present invention.

본 실시예에 따른 영상 부호화 장치(20)는, 도 2에 나타낸 바와 같이, 예측부(200), 감산부(205), 변환부(210), 양자화부(215), 역양자화부(220), 역변환부(225), 가산부(230), 필터부(235), 복호화 픽쳐 버퍼(240) 및 엔트로피 부호화부(245)를 포함할 수 있다.As shown in FIG. 2 , the video encoding apparatus 20 according to the present embodiment includes a prediction unit 200, a subtraction unit 205, a transform unit 210, a quantization unit 215, and an inverse quantization unit 220. , an inverse transform unit 225, an adder 230, a filter unit 235, a decoded picture buffer 240, and an entropy encoding unit 245.

또한, 본 실시예에 따른 영상 복호화 장치(30)는, 도 3에 나타낸 바와 같이, 엔트로피 복호화부(305), 예측부(310), 역양자화부(315), 역변환부(320), 가산부(325), 필터부(330) 및 복호화 픽쳐 버퍼(335)를 포함할 수 있다.In addition, as shown in FIG. 3, the video decoding apparatus 30 according to this embodiment includes an entropy decoding unit 305, a prediction unit 310, an inverse quantization unit 315, an inverse transform unit 320, and an adder 325, a filter unit 330, and a decoded picture buffer 335.

전술한 영상 부호화 장치(20)와 영상 복호화 장치(30)는 각각 별도의 장치들일 수 있으나, 구현에 따라서 하나의 영상 부호화 및 복호화 장치로 만들어질 수 있다. 그 경우, 영상 부호화 장치(20)의 예측부(200), 역양자화부(220), 역변환부(225), 가산부(230), 필터부(235) 및 메모리(240)는 기재된 순서대로 영상 복호화 장치(30)의 예측부(310), 역양자화부(315), 역변환부(320), 가산부(325), 필터부(330) 및 메모리(335)와 실질적으로 동일한 기술요소로서 적어도 동일한 구조를 포함하거나 적어도 동일한 기능을 수행하도록 구현될 수 있다. 또한, 엔트로부 부호화부(245)는 그 기능을 역으로 수행할 때, 엔트로피 복호화부(305)에 대응될 수 있다. 따라서 이하의 기술요소들과 이들의 작동 원리 등에 대한 상세 설명에서는 대응 기술요소들의 중복되는 설명을 생략하기로 한다.The above-described image encoding device 20 and image decoding device 30 may be separate devices, but may be made into one image encoding and decoding device depending on implementation. In this case, the prediction unit 200, the inverse quantization unit 220, the inverse transform unit 225, the adder 230, the filter unit 235, and the memory 240 of the video encoding apparatus 20 generate the image in the order described. The prediction unit 310, the inverse quantization unit 315, the inverse transform unit 320, the adder 325, the filter unit 330, and the memory 335 of the decoding apparatus 30 are substantially the same technical elements, and at least the same structure, or at least implemented to perform the same function. In addition, the entropy encoder 245 may correspond to the entropy decoder 305 when performing its function in reverse. Therefore, in the detailed description of the following technical elements and their operating principles, redundant descriptions of the corresponding technical elements will be omitted.

그리고 영상 복호화 장치(30)는 영상 부호화 장치(20)에서 수행되는 영상 부호화 방법을 복호화에 적용하는 컴퓨팅 장치에 대응하므로, 이하의 설명에서는 영상 부호화 장치(20)를 중심으로 설명하기로 한다.Also, since the image decoding device 30 corresponds to a computing device that applies the image encoding method performed by the image encoding device 20 to decoding, the following description will focus on the image encoding device 20.

컴퓨팅 장치는 영상 부호화 방법 및/또는 영상 복호화 방법을 구현하는 프로그램이나 소프트웨어 모듈을 저장하는 메모리와 메모리에 연결되어 프로그램을 수행하는 프로세서를 포함할 수 있다. 그리고 영상 부호화 장치는 부호화기로, 영상 복호화 장치는 복호화기로 각각 지칭될 수 있다.A computing device may include a memory for storing a program or software module implementing an image encoding method and/or an image decoding method, and a processor connected to the memory to execute the program. Also, the image encoding device may be referred to as an encoder, and the image decoding device may be referred to as a decoder, respectively.

본 실시예의 영상 부호화 장치의 각 구성요소를 좀더 구체적으로 설명하면 다음과 같다.Each component of the video encoding apparatus of the present embodiment will be described in detail as follows.

여기서, 영상 부호화 장치(20)는, 분할부를 더 포함할 수 있다. 분할부는 입력 영상을 정해진 크기의 블록(M×N)으로 분할한다. 여기서, M 또는 N은 1 이상의 임의의 자연수이다. 상세하게는, 분할부은 픽쳐 분할부와 블록 분할부로 구성될 수 있다. 블록은 영상의 특성 및 해상도 등에 따라 크기 또는 형태가 결정될 수 있고, 픽쳐 분할부를 통해 지원되는 블록의 크기 또는 형태는 가로 및 세로의 길이가 2의 지수승으로 표현되는 M×N 정사각 형태(256×256, 128×128, 64×64, 32×32, 16×16, 8×8, 4×4 등)이거나, M×N 직사각 형태일 수 있다. 예를 들어, 해상도가 높은 8k UHD급 영상의 경우 256×256, 1080p HD급 영상의 경우 128×128, WVGA급 영상의 경우 16×16 등 크기로 입력 영상을 분할할 수 있다.Here, the video encoding device 20 may further include a division unit. The division unit divides the input image into blocks (M×N) of a predetermined size. Here, M or N is an arbitrary natural number greater than or equal to 1. In detail, the division unit may include a picture division unit and a block division unit. The size or shape of the block may be determined according to the characteristics and resolution of the image, and the size or shape of the block supported through the picture segmentation unit is an M×N square shape in which the horizontal and vertical lengths are expressed as powers of 2 (256 × 256, 128 × 128, 64 × 64, 32 × 32, 16 × 16, 8 × 8, 4 × 4, etc.) or M × N rectangular shape. For example, an input image may be divided into sizes such as 256×256 for an 8k UHD video having a high resolution, 128×128 for a 1080p HD video, and 16×16 for a WVGA video.

이러한 블록의 크기 또는 형태에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위에서 설정이 가능하며, 관련 정보를 복호화기에 전송할 수 있다. 즉, 시퀀스 파라미터 셋, 픽쳐 파라미터 셋, 슬라이스 헤더 또는 이들의 조합 단위에서 설정될 수 있다.Information on the size or shape of such blocks can be set in units such as sequences, pictures, and slices, and related information can be transmitted to a decoder. That is, it can be set in units of a sequence parameter set, a picture parameter set, a slice header, or a combination thereof.

여기서, 시퀀스(sequence)는 몇 개의 관련 장면을 모아서 구성되는 구성단위를 가리킨다. 그리고 픽쳐(picture)는 하나의 장면 또는 픽쳐에서 일련의 휘도(Y) 성분 혹은 휘도 + 색차(Y, Cb, Cr) 성분 전체를 일컫는 용어로서, 한 픽쳐의 범위는 경우에 따라서 한 프레임 혹은 한 필드가 될 수 있다.Here, a sequence refers to a unit composed of several related scenes. And a picture is a term that refers to a series of luminance (Y) components or luminance + chrominance (Y, Cb, Cr) components in one scene or picture, and the range of one picture is one frame or one field, depending on the case. can be

슬라이스(slice)는 동일 액세스 유닛(access unit) 안에 존재하는 하나의 독립 슬라이스 세그먼트와 다수의 종속 슬라이스 세그먼트를 말할 수 있다. 액세스 유닛은 한 장의 코딩된 픽쳐와 관련된 NAL(network abstraction layer) 유닛의 집합(set)을 의미한다. NAL 유닛은 H.264/AVC와 HEVC 표준에서 비디오 압축 비트스트림을 네트워크 친화적인 형식으로 구성한 구문 구조(syntax structure)이다. 한 슬라이스 단위를 하나의 NAL 유닛으로 구성하는 것이 일반적이며, 시스템 표준에서는 일반적으로 한 프레임을 구성하는 NAL 혹은 NAL 집합을 하나의 액세스 유닛으로 간주한다.A slice may refer to one independent slice segment and a plurality of subordinate slice segments existing in the same access unit. An access unit means a set of network abstraction layer (NAL) units related to one coded picture. A NAL unit is a syntax structure that configures a video compression bitstream in a network-friendly format in the H.264/AVC and HEVC standards. It is common to configure one slice unit as one NAL unit, and the system standard generally regards NAL or NAL sets constituting one frame as one access unit.

다시 픽쳐 분할부의 설명으로 되돌아가서, 블록 크기 또는 형태(M×N)에 대한 정보는 명시적 플래그로 이루어질 수 있는데, 구체적으로 블록 형태 정보, 블록이 정사각형인 경우에 하나의 길이 정보, 직사각형일 경우에는 각각의 길이 정보, 또는 가로와 세로 길이의 차이값 정보 등을 포함할 수 있다. 예를 들어, M과 N이 k의 지수승(k를 2라 가정)으로 구성되어 있을 경우(M=2m, N=2n), m과 n에 대한 정보를 단항 이진화, 절삭형 단항 이진화 등의 다양한 방법으로 부호화하여 관련 정보를 복호화장치에 전달할 수 있다. 또는, 픽쳐 분할부에서 지원하는 분할 허용 최소 크기(Minblksize)가 I×J(설명의 편의상 I=J라고 가정. I=2i,J=2j 일 경우), m-i 또는 n-j에 대한 정보를 전달할 수 있다. 다른 예로, M과 N이 다를 경우, m과 n의 차이값(|m-n|)을 전달할 수 있다. 또는, 픽쳐 분할부에서 지원하는 분할 허용 최대 크기(Maxblksize)가 I×J(설명의 편의상 I=J라고 가정. I=2i,J=2j 일 경우), i-m 또는 n-j에 대한 정보를 전달할 수 있다.Returning to the description of the picture division unit, the information on the block size or shape (M×N) may consist of explicit flags, specifically block shape information, one length information when the block is square, and rectangular shape information. In this case, each length information or difference value information between the horizontal and vertical lengths may be included. For example, if M and N are composed of the powers of k (assuming that k is 2) (M=2 m , N=2 n ), information about m and n is unary binarized or truncated unary binarized. It is possible to transmit related information to a decoding device by encoding in various ways such as. Alternatively, the minimum size allowed for division (Minblksize) supported by the picture division unit is I×J (assuming I=J for convenience of description. In case I=2 i , J=2 j ), mi or nj information is transmitted. can As another example, when M and N are different, the difference between m and n (|mn|) may be transmitted. Alternatively, information on im or nj is transmitted if the maximum size (Maxblksize) supported by the picture segmentation unit is I×J (assuming that I=J for convenience of description. In case of I=2 i , J=2 j ), im or nj can

묵시적인 상황일 경우 예컨대, 관련 정보에 대한 신택스는 존재하나 부호화기 또는 복호화기에서 확인할 수 없는 경우에는, 부호화기나 복호화기는 미리 준비된 기본 설정을 따를 수 있다. 예를 들어, 블록 형태 정보를 확인하는 단계에서 관련 신택스를 확인할 수 없는 경우 블록 형태는 기본 설정인 정사각 형태로 둘 수 있다. 또는, 블록 크기 정보를 확인하는 단계, 상세하게는 상기 예와 같이 분할 허용 최소 크기(Minblksize)로부터의 차이값을 통해 블록 크기 정보를 확인하는 단계에서 차이값 관련 신택스는 확인할 수 있으나 분할 허용 최소 크기(Minblksize) 관련 신택스는 확인할 수 없는 경우 미리 준비된 분할 허용 최소 크기(Minblksize) 관련 기본 설정값으로부터 얻을 수 있다. In the case of an implicit situation, for example, when a syntax for related information exists but cannot be confirmed by an encoder or a decoder, the encoder or decoder may follow a pre-prepared default setting. For example, if the related syntax cannot be checked in the step of checking the block shape information, the block shape can be set to the default square shape. Alternatively, in the step of checking the block size information, in detail, in the step of checking the block size information through the difference value from the minimum size allowed for division (Minblksize) as in the above example, syntax related to the difference value can be checked, but the minimum size allowed for division If the (Minblksize)-related syntax cannot be verified, it can be obtained from the default setting value related to the minimum size (Minblksize) prepared in advance.

이와 같이, 픽쳐 분할부에서 블록의 크기 또는 형태는 부호화기 또는 복호화기에서 관련 정보를 명시적으로 전송하거나 또는 영상의 특성 및 해상도 등에 따라 묵시적으로 결정될 수 있다.In this way, the size or shape of a block in the picture segmentation unit may be implicitly determined according to the characteristics and resolution of an image or the related information may be explicitly transmitted by an encoder or a decoder.

상기와 같이 픽쳐 분할부를 통해 분할 및 결정된 블록은 기본 부호화 단위로 사용될 수 있다. 또한, 픽쳐 분할부를 통해 분할 및 결정된 블록은 픽쳐, 슬라이스, 타일(tile) 등의 상위 레벨 단위를 구성하는 최소 단위일 수 있고, 부호화(Coding Block), 예측(Prediction Block), 변환(Transform Block), 양자화(Quantization Block), 엔트로피(Entropy Block), 인루프 필터(Inloopfiltering Block) 등의 블록의 최대 단위일 수 있으나, 일부 블록은 이에 한정되지 않고 예외도 가능하다.Blocks divided and determined through the picture division unit as described above may be used as a basic coding unit. In addition, a block divided and determined through a picture division unit may be a minimum unit constituting a high-level unit such as a picture, slice, tile, or the like, and may be a coding block, a prediction block, or a transform block. ), quantization block, entropy block, and inloop filter (inloopfiltering block), but some blocks are not limited thereto and exceptions are possible.

예컨대, 인루프 필터링 블록과 같이 일부는 위에서 설명한 블록 크기보다 더 큰 단위로 적용될 수 있다.For example, some of them, such as in-loop filtering blocks, may be applied in units larger than the block size described above.

블록 분할부는 부호화, 예측, 변환, 양자화, 엔트로피, 인루프 필터 등의 블록에 대한 분할을 수행한다. 분할부는 각 구성에 포함되어 기능을 수행하기도 한다. 예컨대, 변환부(210)에 변환블록 분할부, 양자화부(215)에 양자화블록 분할부를 포함할 수 있다. 블록 분할부의 초기 블록의 크기 또는 형태는 이전 단계 또는 상위 레벨 블록의 분할 결과에 의해 결정될 수 있다. 예를 들어, 부호화 블록의 경우 이전 단계인 픽쳐 분할부를 통해 획득된 블록을 초기 블록으로 설정할 수 있다. 또는, 예측 블록의 경우 예측 블록의 상위 레벨인 부호화 블록의 분할 과정을 통해 획득된 블록을 초기 블록으로 설정할 수 있다. 또는, 변환 블록의 경우 변환 블록의 상위 레벨인 부호화 블록의 분할 과정을 통해 획득된 블록을 초기 블록으로 설정할 수 있다. 상기 초기 블록의 크기 또는 형태를 결정하는 조건은 항상 고정적이지 않으며 일부가 변경되거나 예외인 경우가 존재할 수 있다. 또한, 이전 단계 또는 상위 레벨 블록의 분할 상태(예를 들어, 부호화 블록의 크기, 부호화 블록의 형태 등)와 현재 레벨의 설정 조건(예를 들어, 지원되는 변환 블록의 크기, 변환 블록의 형태 등) 각각 최소 하나 이상의 요인의 조합에 따라 현재 레벨의 분할 동작(분할 가능 여부, 분할 가능한 블록 형태 등)에 영향을 줄 수도 있다. The block divider performs division on blocks such as encoding, prediction, transformation, quantization, entropy, and in-loop filters. The division part is included in each component and performs a function. For example, a transform block division unit in the transform unit 210 and a quantization block division unit in the quantization unit 215 may be included. The size or shape of the initial block of the block divider may be determined by a result of division of a previous step or higher level block. For example, in the case of a coding block, a block acquired through a picture segmentation unit, which is a previous step, may be set as an initial block. Alternatively, in the case of a prediction block, a block obtained through a division process of a coding block, which is a higher level of the prediction block, may be set as an initial block. Alternatively, in the case of a transform block, a block obtained through a division process of a coding block, which is a higher level of a transform block, may be set as an initial block. Conditions for determining the size or shape of the initial block are not always fixed, and some may be changed or there may be exceptions. In addition, the division state of the previous level or higher level block (eg, size of coding block, type of coding block, etc.) and setting conditions of the current level (eg, size of supported transform block, type of transform block, etc.) ) may affect the division operation of the current level (eg whether division is possible or not, block type that can be divided, etc.) according to a combination of at least one or more factors.

블록 분할부는 쿼드트리(Quad tree) 기반의 분할 방식을 지원할 수 있다. 즉, 분할 전 블록에서 가로 및 세로가 1/2씩의 길이를 갖는 4개의 블록으로 분할할 수 있다. 이는 최초 블록 기준(dep_0)으로 분할 허용 깊이 한계(dep_k, k는 분할 허용 횟수를 의미하고, 분할 허용 깊이 한계(dep_k)일 때의 블록 크기는 (M >> k, N >> k)임)까지 분할을 반복적으로 할 수 있다.The block partitioning unit may support a quad tree-based partitioning scheme. That is, it can be divided into 4 blocks each having a horizontal and vertical length of 1/2 of the previous block. This is based on the first block (dep_0), and is the limit of the allowable division depth (dep_k, k means the number of allowable divisions, and the block size at the allowable division depth limit (dep_k) is (M >> k, N >> k)) The division can be repeated up to

또한, 바이너리 트리 기반의 분할 방식을 지원할 수 있다. 이는 가로 또는 세로 중 하나의 길이가 분할 전 블록과 비교하여 1/2의 길이를 갖는 2개의 블록으로 분할할 수 있음을 나타낸다. 상기 쿼드 트리 분할과 바이너리 트리의 분할의 경우 대칭 분할(Symmetric Partition)이나 비대칭 분할(Asymmetric Partition)일 수 있으며, 이는 부호화기 또는 복호화기의 설정에 따라 어느 분할 방식을 따를지 정할 수 있다. 본 발명의 영상 부호화 방법에서 대칭 분할 방식 위주로 설명을 할 것이다.In addition, a binary tree-based partitioning method may be supported. This indicates that it can be divided into two blocks each having a horizontal or vertical length equal to 1/2 of the length of the block before division. In the case of the quad tree partitioning and the binary tree partitioning, symmetric partitioning or asymmetric partitioning may be used, and which partitioning method to follow may be determined according to the setting of the encoder or decoder. In the video encoding method of the present invention, the description will be focused on the symmetric division method.

분할 플래그(div_flag)를 통해 각 블록의 분할 여부를 나타낼 수 있으며, 해당 값이 1이면 분할을 수행하고, 값이 0이면 분할을 수행하지 않는다. 또는, 해당 값이 1이면 분할을 수행하고 추가 분할이 가능하며, 값이 0이면 분할을 수행하지 않고 더 이상의 분할을 허용하지 않을 수 있다. 분할 허용 최소 크기, 분할 허용 깊이 한계 등의 조건에 의해 상기 플래그는 분할 여부에 대해서만 고려하고 추가 분할 여부에 대해서는 고려하지 않을 수 있다.Whether or not each block is divided can be indicated through a division flag (div_flag). If the corresponding value is 1, division is performed, and if the value is 0, division is not performed. Alternatively, if the corresponding value is 1, division is performed and additional division is possible, and if the value is 0, division is not performed and further division is not allowed. Depending on conditions such as a minimum size allowed for division and a limit on depth allowed for division, the flag may be considered only for whether to divide or not, and whether or not to additionally divide.

분할 플래그는 쿼드트리 분할에서 사용 가능하고, 바이너리 트리 분할에서도 사용 가능하다. 바이너리 트리 분할에서는 분할 방향이 블록의 분할 깊이, 부호화 모드, 예측 모드, 크기, 형태, 종류(부호화, 예측, 변환, 양자화, 엔트로피, 인루프 필터 등 중 하나일 수 있음. 또는, 휘도, 색차 중 하나일 수 있음) 그리고 슬라이스 타입, 분할 허용 깊이 한계, 분할 허용 최소 및 최대 크기 등의 요인 중 최소 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수 있다. Splitting flags can be used in quadtree partitioning, and can also be used in binary tree partitioning. In binary tree splitting, the splitting direction can be one of the block's splitting depth, encoding mode, prediction mode, size, shape, type (encoding, prediction, transformation, quantization, entropy, in-loop filter, etc.) or luminance or chrominance. may be one), and may be determined according to at least one factor or a combination thereof, such as a slice type, an allowable division depth limit, and minimum and maximum sizes allowed for division.

그 경우 분할 플래그에 따라 해당 분할 방향에 따라 즉, 블록의 가로만 1/2로 분할되거나 또는 세로만 1/2로 분할될 수 있다. 예를 들어, 블록이 M×N(M>N)으로 M이 N보다 클 때 가로 분할을 지원하며, 현재 분할 깊이(dep_curr)는 분할 허용 깊이 한계보다 작아서 추가 분할이 가능하다고 가정하면, 위의 분할 플래그는 1비트로 할당되어 해당 값이 1이면 가로 분할을 수행하고, 0이면 더 이상 분할하지 않을 수 있다. 분할 깊이는 쿼드 트리와 바이너리 트리 분할에 하나의 분할 깊이를 둘 수도 있고, 쿼드 트리와 바이너리 트리 분할에 각각의 분할 깊이를 둘 수도 있다. 또한, 분할 허용 깊이 한계는 쿼드 트리와 바이너리 트리 분할에 하나의 분할 허용 깊이 한계를 둘 수도 있고, 쿼드 트리와 바이너리 트리 분할에 각각의 분할 허용 깊이 한계를 둘 수도 있다. In this case, according to the division flag, according to the corresponding division direction, that is, only the block may be divided in half horizontally or only vertically. For example, assuming that a block supports horizontal partitioning as M×N (M>N), where M is greater than N, and that the current partitioning depth (dep_curr) is smaller than the partitioning depth limit, further partitioning is possible. The division flag is allocated as 1 bit, and if the corresponding value is 1, horizontal division is performed, and if the value is 0, no further division may be performed. As for the splitting depth, one splitting depth may be provided for the quad tree and binary tree splits, or each split depth may be provided for the quad tree and binary tree splits. In addition, as for the splitting allowable depth limit, one splitting allowable depth limit may be placed on quad tree and binary tree splitting, or splitting allowable depth limits may be set on each of the quad tree and binary tree splitting.

다른 예로, 블록이 M×N (M>N)이고 N이 미리 설정된 분할 허용 최소 크기와 같아서 가로 분할을 지원하지 않는다면, 위의 분할 플래그는 1비트로 할당되어 해당 값이 1이면 세로 분할을 수행하고, 0이면 분할을 수행하지 않는다. As another example, if the block is M×N (M>N) and N is equal to the preset minimum allowable splitting size and does not support horizontal splitting, the above splitting flag is assigned as 1 bit, and if the value is 1, vertical splitting is performed, , if it is 0, no division is performed.

또한, 가로 분할 또는 세로 분할을 위한 플래그(div_h_flag, div_v_flag)를 각각 지원할 수 있으며, 상기 플래그에 따라 바이너리 분할을 지원할 수 있다. 가로 분할 플래그(div_h_flag) 또는 세로 분할 플래그(div_v_flag)를 통해 각 블록의 가로 또는 세로 분할 여부를 나타낼 수 있으며, 가로 분할 플래그(div_h_flag) 또는 세로 분할 플래그(div_v_flag)가 1이면 가로 또는 세로 분할을 수행하며, 0이면 가로 또는 세로 분할을 수행하지 않는다. 또는, 각 플래그가 1이면 가로 또는 세로 분할을 수행하며 가로 또는 세로의 추가 분할이 가능하고, 값이 0이면 가로 또는 세로 분할을 수행하지 않으며 더 이상의 가로 또는 세로의 추가 분할은 허용하지 않을 수 있다. 분할 허용 최소 크기, 분할 허용 깊이 한계 등의 조건에 의해 상기 플래그는 분할 여부에 대해서 고려하고 추가 분할 여부에 대해서는 고려하지 않을 수 있다. 또는, 가로 분할 또는 세로 분할을 위한 플래그(div_flag/h_v_flag)를 지원할 수 있으며, 상기 플래그에 따라 바이너리 분할을 지원할 수 있다. 분할 플래그(div_flag)는 가로 또는 세로 분할 여부를 나타낼 수 있으며 분할 방향 플래그(h_v_flag)는 가로 또는 세로의 분할 방향을 나타낼 수 있다. 분할 플래그(div_flag)가 1이면 분할을 수행하며 분할 방향 플래그(h_v_flag)에 따라 가로 또는 세로 분할을 수행하며, 0이면 가로 또는 세로 분할을 수행하지 않는다. 또는, 해당 값이 1이면 분할 방향 플래그(h_v_flag)에 따라 가로 또는 세로 분할을 수행하며 가로 또는 세로의 추가 분할이 가능하고, 값이 0이면 가로 또는 세로 분할을 수행하지 않으며 더 이상의 가로 또는 세로 분할을 허용하지 않는 것으로 간주할 수 있다. 분할 허용 최소 크기, 분할 허용 깊이 한계 등의 조건에 의해 상기 플래그는 분할 여부에 대해서 고려하고 추가 분할 여부에 대해서는 고려하지 않을 수 있다.In addition, flags (div_h_flag and div_v_flag) for horizontal division or vertical division may be supported, respectively, and binary division may be supported according to the flags. Horizontal or vertical division of each block can be indicated through the horizontal division flag (div_h_flag) or vertical division flag (div_v_flag). If the horizontal division flag (div_h_flag) or vertical division flag (div_v_flag) is 1, horizontal or vertical division is performed. If set to 0, horizontal or vertical division is not performed. Alternatively, if each flag is 1, horizontal or vertical division is performed and additional horizontal or vertical division is possible. If the value is 0, horizontal or vertical division is not performed and additional horizontal or vertical division is not allowed. . Depending on conditions such as the minimum size allowed for division and the limit on the depth allowed for division, the flag may consider whether to divide or not and may not consider whether to additionally divide. Alternatively, a flag (div_flag/h_v_flag) for horizontal division or vertical division may be supported, and binary division may be supported according to the flag. The division flag (div_flag) may indicate horizontal or vertical division, and the division direction flag (h_v_flag) may indicate a horizontal or vertical division direction. If the division flag (div_flag) is 1, division is performed and horizontal or vertical division is performed according to the division direction flag (h_v_flag). If it is 0, horizontal or vertical division is not performed. Alternatively, if the value is 1, horizontal or vertical division is performed according to the division direction flag (h_v_flag) and additional horizontal or vertical division is possible. If the value is 0, no horizontal or vertical division is performed and further horizontal or vertical division is possible. can be considered disallowed. Depending on conditions such as the minimum size allowed for division and the limit on the depth allowed for division, the flag may consider whether to divide or not and may not consider whether to additionally divide.

이러한 분할 플래그 또한 가로, 세로 분할을 위해 각각 지원할 수 있으며, 상기 플래그에 따라 바이너리 트리 분할을 지원할 수 있다. 또한, 분할 방향이 미리 결정되어 있는 경우, 상기 예와 같이 둘 중의 하나의 분할 플래그만 사용되거나, 두 분할 플래그 모두가 사용될 수 있다.Horizontal and vertical splitting may also be supported, and binary tree splitting may be supported according to the flag. In addition, when the division direction is predetermined, only one of the two division flags or both division flags may be used as in the above example.

예를 들어, 상기의 플래그가 다 허용되면 가능한 블록의 형태는 M×N, M/2×N, M×N/2, M/2×N/2 중 어느 하나로 분할이 될 수 있다. 이 경우, 플래그는 (div_h_flag/div_v_flag순으로) 00, 01, 10, 11로 부호화될 수 있다. 위의 경우 상기 분할 플래그가 중첩되어 사용될 수 있는 설정에서의 예시이고, 상기 분할 플래그가 중첩되어 사용될 수 없는 설정 또한 가능하다. 예를 들어, 분할 블록 형태가 M×N, M/2×N, M×N/2로 분할 될 수 있으며, 이 경우 위의 플래그는 (div_h_flag/div_v_flag순으로) 00, 01, 10로 부호화되거나, (div_flag/h_v_flag순으로. h_v_flag는 분할 방향이 가로 또는 세로를 나타내는 플래그) 0, 10, 11로 부호화될 수 있다. 여기에서 중첩의 의미는 가로 분할과 세로 분할을 동시에 수행하는 것을 의미할 수 있다. 전술한 쿼드트리 분할 및 바이너리 트리 분할은 부호화기 또는 복호화기의 설정에 따라 어느 하나가 단독으로 사용되거나 혼용되어 사용될 수 있다. 예컨대, 블록 크기 또는 형태에 따라서 쿼드트리 또는 바이너리 트리 분할이 결정될 수 있다. 즉, 블록 형태가 M×N이고, M이 N보다 큰 경우에는 가로 분할, 블록 형태가 M×N이고, N이 M보다 큰 경우에는 세로 분할에 따라 바이너리 트리 분할이 지원될 수 있고, 블록 형태가 M×N이고, N과 M인 동일한 경우에는 쿼드트리 분할이 지원될 수 있다.For example, if all of the above flags are allowed, the possible block types can be divided into one of MxN, M/2xN, MxN/2, and M/2xN/2. In this case, the flags may be coded as 00, 01, 10, and 11 (in order of div_h_flag/div_v_flag). The above case is an example of a setting in which the split flags can be overlapped and used, and a setting in which the split flags cannot be overlapped and used is also possible. For example, the split block form can be divided into M×N, M/2×N, and M×N/2, in which case the above flags are coded as 00, 01, 10 (in order of div_h_flag/div_v_flag), or , (in order of div_flag/h_v_flag. h_v_flag is a flag representing horizontal or vertical division direction) and can be coded as 0, 10, or 11. Here, the meaning of overlapping may mean performing horizontal and vertical division at the same time. Either of the aforementioned quad tree partitioning and binary tree partitioning may be used alone or in combination according to the setting of an encoder or a decoder. For example, quad tree or binary tree partitioning may be determined according to a block size or shape. That is, when the block type is M×N and M is greater than N, binary tree splitting can be supported according to horizontal splitting, and when the block type is M×N and N is larger than M, vertical splitting can be supported. is M×N, and if N and M are the same, quadtree partitioning may be supported.

다른 예로, 블록(M×M)의 크기가 블록 분할 경계값(Thrblksize)보다 크거나 같은 경우는 바이너리 트리 분할이 지원될 수 있고, 그보다 작은 경우에는 쿼드트리 분할이 지원될 수 있다.As another example, if the size of the block (M×M) is greater than or equal to the block partitioning boundary value Thrblksize, binary tree partitioning may be supported, and if smaller than that, quadtree partitioning may be supported.

*다른 예로, 블록(M×N)의 M 또는 N이 제 1 분할 허용 최대 크기 (Maxblksize1)보다 작거나 같고 제 1 분할 허용 최소 크기(Minblksize1)보다 크거나 같을 경우에는 쿼드 트리 분할을 지원하고, 블록(M×N)의 M 또는 N이 제 2 분할 허용 최대 크기(Maxblksize2)보다 작거나 같고 제 2 분할 허용 최소 크기(Minblksize2)보다 크거나 같을 경우에는 바이너리 트리 분할이 지원될 수도 있다. 만약 상기 분할 허용 최대 크기와 분할 허용 최소 크기로 정의할 수 있는 제 1 분할 지원 범위와 제 2 분할 지원 범위가 중복되는 경우에는, 부 또는 복호화기의 설정에 따라 제 1 또는 제 2 분할 방법 중의 우선순위가 주어질 수 있다. 본 예에서는 제 1의 분할 방법은 쿼드트리 분할, 제 2 분할 방법은 바이너리 트리 분할로 예를 들 수 있다. 예를 들어, 제 1 분할 허용 최소 크기(Minblksize1)이 16이고 제 2 분할 허용 최대 크기(Maxblksize2)가 64이며 분할 전 블록이 64×64 일 경우, 제 1 분할 지원 범위와 제 2 분할 지원 범위에 모두 속하므로 쿼드 트리 분할과 바이너리 트리 분할이 가능하다. 기설정에 따라 제 1 분할 방법(본 예에서는 쿼드 트리 분할)으로 우선 순위가 주어진다면, 분할 플래그 (div_flag)가 1일 경우에는 쿼드 트리 분할을 수행하며 추가 쿼드 트리 분할이 가능하고, 0일 경우에는 쿼드 트리 분할을 수행하지 않으며 더 이상 쿼드 트리 분할을 수행하지 않는 것으로 간주할 수 있다. 분할 허용 최소 크기, 분할 허용 깊이 한계 등의 조건에 의해 상기 플래그는 분할 여부에 대해서만 고려하고 추가 분할 여부에 대해서는 고려하지 않을 수 있다. 만약, 상기 분할 플래그(div_flag)가 1일 경우에는 32×32의 크기를 갖는 4개의 블록으로 분할이 되어 제 1 분할 허용 최소 크기(Minblksize1) 보다 크기 때문에 쿼드 트리 분할을 계속 수행할 수 있다. 만약, 0일 경우에는 추가적인 쿼드 트리 분할을 수행하지 않으며, 현재 블록 크기(64×64)가 상기 제 2 분할 지원 범위에 속하게 되므로 바이너리 트리 분할을 수행할 수 있다. 분할 플래그(div_flag/h_v_flag순으로)가 0일 경우에는 더 이상 분할을 수행하지 않으며, 10 또는 11인 경우에는 가로 분할 또는 세로 분할을 수행할 수 있다. 만약 분할 전 블록이 32×32이며 분할 플래그(div_flag)가 0이라 더 이상 쿼드 트리 분할을 하지 않고 제 2 분할 허용 최대 크기(Maxblksize2)가 16일 경우, 현재 블록의 크기(32×32)가 제 2 분할 지원 범위에 속하지 않으므로 더 이상의 분할을 지원하지 않을 수 있다. 위 설명에서 분할 방법의 우선순위는 슬라이스 타입, 부호화 모드, 휘도 및 색차 성분 등 중에서 최소 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수 있다. * As another example, if M or N of the block (M×N) is smaller than or equal to the first splitting maximum size (Maxblksize1) and greater than or equal to the first splitting minimum size (Minblksize1), quad tree splitting is supported, Binary tree splitting may be supported when M or N of blocks (M×N) is smaller than or equal to the maximum size allowed for second splitting (Maxblksize2) and larger than or equal to the minimum size allowed for second splitting (Minblksize2). If the first division support range and the second division support range, which can be defined by the maximum size allowed for division and the minimum size allowed for division, overlap, the first or second division method takes precedence according to the setting of the sub or decoder. A ranking may be given. In this example, the first division method is quad tree division, and the second division method is binary tree division. For example, if the minimum size allowed for the first division (Minblksize1) is 16, the maximum size allowed for the second division (Maxblksize2) is 64, and the block before division is 64×64, the first division support range and the second division support range Since they all belong, quad tree splitting and binary tree splitting are possible. If priority is given to the first division method (quad tree division in this example) according to a preset setting, if the division flag (div_flag) is 1, quad tree division is performed and additional quad tree division is possible. does not perform quad-tree splitting and can be considered as not performing quad-tree splitting anymore. Depending on conditions such as a minimum size allowed for division and a limit on depth allowed for division, the flag may be considered only for whether to divide or not, and whether or not to additionally divide. If the division flag (div_flag) is 1, it is divided into 4 blocks each having a size of 32×32 and is larger than the first minimum size allowed for division (Minblksize1), so quad tree division can be continued. If it is 0, additional quad tree splitting is not performed, and binary tree splitting can be performed because the current block size (64x64) falls within the second splitting support range. When the division flags (in order of div_flag/h_v_flag) are 0, no further division is performed, and when they are 10 or 11, horizontal division or vertical division may be performed. If the block before splitting is 32×32 and the splitting flag (div_flag) is 0, quad tree splitting is not performed and the maximum size allowed for second splitting (Maxblksize2) is 16, the size of the current block (32×32) is Since it does not fall within the scope of 2 division support, further division may not be supported. In the above description, the priority of the segmentation method may be determined according to at least one factor or a combination thereof among slice types, encoding modes, luminance and color difference components, and the like.

다른 예로, 휘도 및 색차 성분에 따라 다양한 설정을 지원할 수 있다. 예를 들어, 휘도 성분에서 결정된 쿼드 트리 또는 바이너리 트리 분할 구조를 색차 성분에서는 추가적인 정보 부 또는 복호화없이 그대로 사용할 수 있다. 또는, 휘도 성분과 색차 성분의 독립적인 분할을 지원할 경우, 휘도 성분에는 쿼드 트리 + 바이너리 트리, 색차 성분에는 쿼드 트리 분할을 지원할 수도 있다. 또는, 휘도와 색차 성분에서 쿼드 트리 + 바이너리 트리 분할을 지원하되, 상기 분할 지원 범위가 휘도와 색차 성분에도 동일 또는 비례할 수도 있고, 그렇지 않을 수도 있다. 예를 들어, 컬러 포맷이 4:2:0인 경우일 경우, 색차 성분의 분할 지원 범위가 휘도 성분의 분할 지원 범위의 N/2일 수 있다.As another example, various settings may be supported according to luminance and color difference components. For example, the quad tree or binary tree partitioning structure determined in the luminance component can be used as it is without additional information or decoding in the chrominance component. Alternatively, when independent division of the luminance component and the chrominance component is supported, quad tree+binary tree division may be supported for the luminance component and quad tree division may be supported for the chrominance component. Alternatively, quad tree + binary tree division is supported in the luminance and chrominance components, but the division support range may be equal to or proportional to the luminance and chrominance components, or not. For example, when the color format is 4:2:0, the division support range of the chrominance component may be N/2 of the division support range of the luminance component.

다른 예로, 슬라이스 타입에 따라 다른 설정을 둘 수 있다. 예를 들어, I 슬라이스에서는 쿼드 트리 분할을 지원할 수 있고, P 슬라이스에서는 바이너리 트리 분할을 지원할 수 있고, B 슬라이스에서는 쿼드 트리 + 바이너리 트리 분할을 지원할 수 있다.As another example, different settings may be set according to slice types. For example, quad tree partitioning can be supported in I slice, binary tree partitioning can be supported in P slice, and quad tree + binary tree partitioning can be supported in B slice.

상기 예와 같이 쿼드 트리 분할 및 바이너리 트리 분할이 다양한 조건에 따라 설정 및 지원될 수 있다. 상기 예들은 전술한 경우에만 특정하는 것은 아니며 서로의 조건이 뒤바뀌는 경우도 포함할 수 있고, 상기 예에서 언급된 하나 이상의 요인 또는 이들의 조합되는 경우도 포함할 수 있고, 다른 경우의 예로 변형 또한 가능하다. 위의 분할 허용 깊이 한계는 분할 방식(쿼드트리, 바이너리 트리), 슬라이스 타입, 휘도 및 색차 성분, 부호화 모드 등에서 최소 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수 있다. 또한, 상기 분할 지원 범위는 분할 방식(쿼드트리, 바이너리 트리), 슬라이스 타입, 휘도 및 색차 성분, 부호화 모드 등에서 최소 하나 이상의 요인에 또는 이들의 조합에 따라 결정될 수 있으며, 관련 정보는 분할 지원 범위의 최대값, 최소값으로 표현할 수 있다. 이에 대한 정보를 명시적 플래그로 구성할 경우, 최대값 및 최소값 각각의 길이 정보, 또는 최소값과 최대값의 차이값 정보 등을 표현할 수 있다. 예를 들어, 최대값과 최소값이 k의 지수승(k를 2라 가정)으로 구성되어 있을 경우, 최대값과 최소값의 지수 정보를 다양한 이진화를 통해 부호화하여 복호화 장치에 전달할 수 있다. 또는, 최대값과 최소값의 지수의 차이값을 전달할 수 있다. 이 때 전송되는 정보는 최소값의 지수 정보와 지수의 차이값 정보일 수 있다As in the above example, quad tree splitting and binary tree splitting can be set and supported according to various conditions. The above examples are not specific to the above-mentioned cases, and may include cases where conditions of each other are reversed, and may include cases where one or more factors mentioned in the above examples or a combination thereof are also included, and variations are also possible as examples of other cases. do. The above limit on the permissible depth of division may be determined according to at least one factor or a combination thereof, such as a division method (quad tree, binary tree), slice type, luminance and color difference components, and an encoding mode. In addition, the division support range may be determined according to at least one factor or a combination thereof in a division method (quad tree, binary tree), slice type, luminance and chrominance components, encoding mode, etc., and the related information is the division support range It can be expressed as a maximum value and a minimum value. When this information is configured as an explicit flag, length information of each of the maximum and minimum values or difference information between the minimum and maximum values may be expressed. For example, when the maximum value and the minimum value are composed of the power of k (assuming that k is 2), the exponential information of the maximum and minimum values may be encoded through various binarization and transmitted to a decoding device. Alternatively, the difference between the exponents of the maximum and minimum values can be transmitted. At this time, the transmitted information may be index information of the minimum value and difference value information of the index.

전술한 설명에 따라 플래그와 관련한 정보들은 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위에서 생성되고 전송될 수 있다.According to the above description, flag-related information may be generated and transmitted in units such as sequences, pictures, slices, tiles, and blocks.

상기 예시로 제시된 분할 플래그들로 쿼드 트리 또는 바이너리 트리 또는 두 트리 방식의 혼합을 통해 블록 분할 정보를 나타낼 수 있으며, 분할 플래그는 단항 이진화, 절삭형 단항 이진화 등의 다양한 방법으로 부호화하여 관련 정보를 복호화 장치에 전달할 수 있다. 상기 블록의 분할 정보를 표현하기 위한 분할 플래그의 비트스트림 구조는 1개 이상의 스캔 방법 중 선택할 수 있다. 예를 들어, 분할 깊이 순서(dep0에서 dep_k순서로) 기준으로 분할 플래그들의 비트스트림을 구성할 수 있고, 분할 여부 기준으로 분할 플래그들의 비트스트림을 구성할 수도 있다. 분할 깊이 순서 기준 방법에서는 최초 블록 기준으로 현 수준의 깊이에서의 분할 정보를 획득한 후 다음 수준의 깊이에서의 분할 정보를 획득하는 방법이며, 분할 여부 기준 방법에서는 최초 블록 기준으로 분할된 블록에서의 추가 분할 정보를 우선적으로 획득하는 방법을 의미하며, 이 외에도 위의 예에서 제시되지 않은 다른 스캔 방법이 포함되어 선택될 수 있다.With the split flags presented as examples above, block split information can be represented through a combination of quad tree, binary tree, or two tree methods, and the split flag is encoded using various methods such as unary binarization and truncated unary binarization to decode related information. can be passed to the device. A bitstream structure of a partition flag for expressing partition information of the block may be selected from one or more scan methods. For example, a bitstream of split flags may be configured based on a split depth order (from dep0 to dep_k), and a bitstream of split flags may be configured based on whether or not to split. In the split depth order criterion method, split information at the current level depth based on the first block is acquired and then split information at the next level depth is obtained. This means a method of preferentially obtaining additional segmentation information, and in addition to this, other scan methods not presented in the above example may be included and selected.

또한, 구현에 따라서, 블록 분할부는 전술한 분할 플래그가 아닌 미리 정의된 소정 형태의 블록 후보군에 대한 인덱스 정보를 생성하여 이를 표현할 수 있다. 블록 후보군의 형태는, 예를 들어, 분할 전 블록에서 가질 수 있는 분할 블록의 형태로서 M×N, M/2×N, M×N/2, M/4×N, 3M/4×N, M×N/4, M×3N/4, M/2×N/2 등을 포함할 수 있다. 위와 같이 분할 블록의 후보군이 결정되면 상기 분할 블록 형태에 대한 인덱스 정보를 고정 길이 이진화, 단삭 절단형 이진화, 절단형 이진화 등과 같은 다양한 방법을 통해 부호화할 수 있다. 위에서 설명한 분할 플래그와 같이 블록의 분할 깊이, 부호화 모드, 예측 모드, 크기, 형태, 종류 그리고 슬라이스 타입, 분할 허용 깊이 한계, 분할 허용 최소 및 최대 크기 등의 요인 중 최소 하나 이상의 요인 또는 이들의 조합에 따라 분할 블록 후보군이 결정될 수 있다. 다음 설명을 위해서 (M×N, M/2×N/2)를 후보 list1, (M×N, M/2×N, M×N/2, M/2×N/2)를 후보 list2, (M×N, M/2×N, M×N/2)를 후보 list3, (M×N, M/2×N, M×N/2, M/4×N, 3M/4×N, M×N/4, M×3N/4, M/2×N/2)를 후보 list4라 가정한다. 예를 들어, M×N을 기준으로 설명할 때, (M=N)일 경우에는 후보 list2의 분할 블록 후보를, (M≠N)일 경우에는 후보 list3의 분할 블록 후보를 지원할 수 있다.Also, depending on the implementation, the block division unit may generate and express index information for a block candidate group of a predefined form, rather than the above-described division flag. The shape of the block candidate group is, for example, the shape of a split block that can be had in a block before splitting, M×N, M/2×N, M×N/2, M/4×N, 3M/4×N, M×N/4, M×3N/4, M/2×N/2, and the like. As described above, when a candidate group of split blocks is determined, index information for the split block shape may be encoded through various methods such as fixed-length binarization, truncated-type binarization, and truncated-type binarization. As with the splitting flags described above, at least one or a combination of factors such as block splitting depth, encoding mode, prediction mode, size, shape, type, and slice type, splitting depth limit, splitting minimum and maximum size, etc. Accordingly, a partition block candidate group may be determined. For the following description, (M×N, M/2×N/2) is candidate list1, (M×N, M/2×N, M×N/2, M/2×N/2) is candidate list2, (M×N, M/2×N, M×N/2) as candidate list3, (M×N, M/2×N, M×N/2, M/4×N, 3M/4×N, It is assumed that M×N/4, M×3N/4, and M/2×N/2) are candidate list4. For example, when describing based on M×N, when (M=N), a split block candidate of candidate list2 may be supported, and when (M≠N), a split block candidate of candidate list3 may be supported.

다른 예로, M×N의 M 또는 N이 경계값(blk_th)보다 크거나 같을 경우에는 후보 list2의 분할 블록 후보를, 그보다 작을 경우에는 후보 list4의 분할 블록 후보를 지원할 수 있다. 또는, M또는 N이 제 1 경계값(blk_th_1)보다 크거나 같을 경우에는 후보 list1의 분할 블록 후보를, 제 1 경계값(blk_th_1)보다는 작지만 제 2 경계값(blk_th_2)보다는 크거나 같을 경우에는 후보 list2의 분할 블록 후보를, 제 2 경계값(blk_th_2)보다 작을 경우에는 후보 list4의 분할 블록 후보를 지원할 수 있다.As another example, if M or N of M×N is greater than or equal to the boundary value (blk_th), the split block candidate of candidate list2 may be supported, and if smaller than that, the split block candidate of candidate list4 may be supported. Alternatively, when M or N is greater than or equal to the first boundary value (blk_th_1), the split block candidate of candidate list1 is selected, and is smaller than the first boundary value (blk_th_1) but greater than or equal to the second boundary value (blk_th_2). When the split block candidate of list2 is smaller than the second boundary value (blk_th_2), the split block candidate of candidate list4 may be supported.

다른 예로, 부호화 모드가 화면 내 예측인 경우 후보 list2의 분할 블록 후보를, 화면 간 예측인 경우 후보 list4의 분할 블록 후보를 지원할 수 있다.As another example, when the encoding mode is intra prediction, the split block candidate of candidate list2 may be supported, and when the encoding mode is inter prediction, the split block candidate of candidate list4 may be supported.

상기와 같은 분할 블록 후보가 지원된다 하더라도 각각의 블록에서 이진화에 따른 비트 구성은 같을 수도, 다를 수도 있다. 예를 들어, 위의 분할 플래그에서의 적용과 같이 블록 크기 또는 형태에 따라 지원되는 분할 블록 후보가 제한된다면 해당 블록 후보의 이진화에 따른 비트 구성이 달라질 수 있다. 예컨대, (M>N)일 경우에는 가로 분할에 따른 블록 형태 즉, M×N, M×N/2, M/2×N/2를 지원할 수 있고, 분할 블록 후보군(M×N, M/2×N, M×N/2, M/2×N/2)에서의 M×N/2과 현재 조건의 M×N/2에 따른 인덱스의 이진 비트가 서로 다를 수 있다. 블록의 종류 예컨대 부호화, 예측, 변환, 양자화, 엔트로피, 인루프필터링 등에 사용되는 블록의 종류에 따라 분할 플래그 또는 분할 인덱스 방식 중 하나를 사용하여 블록의 분할 및 형태에 대한 정보를 표현할 수 있다. 또한, 각 블록 종류에 따라 분할 및 블록의 형태 지원에 대한 블록 크기 제한 및 분할 허용 깊이 한계 등이 다를 수 있다.Even if the split block candidate as described above is supported, the bit configuration according to binarization in each block may be the same or different. For example, if supported split block candidates are limited according to the block size or shape, as in the above split flag application, the bit configuration according to binarization of the corresponding block candidate may be changed. For example, in the case of (M>N), block types according to horizontal partitioning, that is, M × N, M × N / 2, and M / 2 × N / 2 can be supported, and the partition block candidates (M × N, M / Binary bits of the index according to M×N/2 in 2×N, M×N/2, and M/2×N/2) and M×N/2 of the current condition may be different. According to the type of block used for encoding, prediction, transformation, quantization, entropy, in-loop filtering, etc., information about the partition and shape of the block may be expressed using either a split flag or a split index method. In addition, the block size limit and the allowable depth limit for splitting and supporting the shape of the block may be different according to each block type.

블록 단위의 부호화 또는 복호화 과정은 우선 부호화 블록이 결정된 후, 예측 블록 결정, 변환 블록 결정, 양자화 블록 결정, 엔트로피 블록 결정, 인루프 필터 결정 등의 과정에 따라 부호화 또는 복호화를 진행할 수 있다. 상기의 부호화 또는 복호화 과정에 대한 순서는 항상 고정적이지 않으며, 일부 순서가 변경되거나 제외될 수 있다. 상기 블록의 크기 및 형태의 후보별 부호화 비용에 따라 각 블록의 크기 및 형태가 결정되고, 결정된 각 블록의 영상 데이터 및 결정된 각 블록의 크기 및 형태 등의 분할 관련 정보들을 부호화할 수 있다.In the block-by-block encoding or decoding process, after a coding block is determined, encoding or decoding may be performed according to processes such as a prediction block determination, a transform block determination, a quantization block determination, an entropy block determination, and an in-loop filter determination. The order of the encoding or decoding process is not always fixed, and some order may be changed or excluded. The size and shape of each block may be determined according to the encoding cost for each candidate of the size and shape of the block, and segmentation related information such as image data of each determined block and size and shape of each determined block may be encoded.

예측부(200)는 소프트웨어 모듈인 예측 모듈(prediction module)을 이용하여 구현될 수 있고, 부호화할 블록에 대하여 화면 내 예측 방식이나 화면 간 예측 방식으로 예측 블록을 생성할 수 있다. 여기서, 예측 블록은 화소 차이의 관점에서, 부호화할 블록과 가깝게 일치하는 것으로 이해되는 블록이며, SAD(Sum of Absolute Difference), SSD(Sum of Square Difference)를 포함하는 다양한 방법으로 결정될 수 있다. 또한, 이때 영상 블록들을 복호화시에 사용될 수 있는 각종 구문(Syntax)들을 생성할 수도 있다. 예측 블록은 부호화 모드에 따라 화면 내 블록과 화면 간 블록으로 분류될 수 있다.The prediction unit 200 may be implemented using a prediction module, which is a software module, and may generate a prediction block using an intra-prediction method or an inter-prediction method with respect to a block to be encoded. Here, the prediction block is a block that is understood to closely match the block to be encoded in terms of pixel differences, and can be determined by various methods including Sum of Absolute Difference (SAD) and Sum of Square Difference (SSD). In addition, at this time, various syntaxes that can be used when decoding image blocks may be generated. A prediction block may be classified into an intra-picture block and an inter-picture block according to an encoding mode.

화면 내 예측(intra prediction)은 공간적인 상관성을 이용하는 예측 기술로, 현재 픽쳐 내에서 이전에 부호화되고 복호화되어 복원된 블록들의 참조 화소들을 이용하여 현재 블록을 예측하는 방법을 말한다. 즉, 화면 내 예측은 예측과 복원으로 재구성된 밝기 값을 부호화기 및 복호화기에서 참조 화소로 사용할 수 있다. 화면 내 예측은 연속성을 갖는 평탄한 영역 및 일정한 방향성을 가진 영역에 대해 효과적일 수 있으며, 공간적인 상관성을 이용하기 때문에 임의 접근(random access)을 보장하고, 오류 확산을 방지하는 목적으로 사용될 수 있다.Intra prediction is a prediction technique using spatial correlation, and refers to a method of predicting a current block using reference pixels of previously encoded, decoded, and reconstructed blocks within a current picture. That is, in the intra-prediction, brightness values reconstructed through prediction and restoration may be used as reference pixels in the encoder and decoder. Intra-picture prediction can be effective for a flat region with continuity and a region with a constant direction, and can be used for the purpose of guaranteeing random access and preventing error diffusion because it uses spatial correlation.

화면 간 예측(inter prediction)은 하나 이상의 과거 또는 미래 픽쳐에서 부호화된 영상을 참조하여 시간적인 상관성을 이용하여 데이터의 중복을 제거하는 압축 기법을 이용한다. 즉, 화면 간 예측은 하나 이상의 과거 또는 미래 픽쳐를 참조함으로써 높은 유사성을 갖는 예측 신호를 생성할 수 있다. 화면 간 예측을 이용하는 부호화기에서는 참조 픽쳐에서 현재 부호화하려는 블록과 상관도가 높은 블록을 탐색하고, 선택된 블록의 위치 정보와 잔차(residue) 신호를 복호화기로 전송할 수 있고, 복호화기는 전송된 영상의 선택 정보를 이용하여 부호화기와 동일한 예측 블록을 생성하고 전송된 잔차 신호를 보상하여 복원 영상을 구성할 수 있다.Inter prediction uses a compression technique that removes data redundancy by using temporal correlation by referring to images encoded in one or more past or future pictures. That is, inter prediction can generate a prediction signal having high similarity by referring to one or more past or future pictures. An encoder using inter-prediction may search for a block having a high correlation with a block to be currently encoded in a reference picture, transmit location information and a residual signal of the selected block to a decoder, and the decoder may transmit selection information of the transmitted image. A reconstructed image may be constructed by generating the same prediction block as the encoder and compensating for the transmitted residual signal using .

도 4는 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 P 슬라이스의 화면 간 예측을 나타낸 예시도이다. 도 5는 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 B 슬라이스의 화면 간 예측을 나타낸 예시도이다.4 is an exemplary diagram illustrating inter prediction of P slices in an image encoding and decoding method according to an embodiment of the present invention. 5 is an exemplary diagram illustrating inter prediction of a B slice in an image encoding and decoding method according to an embodiment of the present invention.

본 실시예의 영상 부호화 방법에서, 화면 간 예측은 시간적으로 높은 상관성이 있는 이전에 부호화된 픽쳐로부터 예측 블록을 생성하기 때문에 부호화 효율을 높일 수 있다. Current(t)는 부호화할 현재 픽쳐를 의미할 수 있고, 영상 픽쳐의 시간적인 흐름 혹은 픽쳐 오더 카운트(Picture Order Count, POC)기준으로 할 때 현재 픽쳐의 POC보다 이전의 제1 시간적인 거리(t-1)를 가지는 제1 참조픽쳐(t-1)와 제1 시간적인 거리보다 이전의 제2 시간적인 거리(t-2)를 가지는 제2 참조픽쳐(t-2)를 포함할 수 있다. In the video encoding method of the present embodiment, since inter-prediction generates prediction blocks from previously encoded pictures having high temporal correlation, encoding efficiency can be increased. Current(t) may mean the current picture to be encoded, and the first temporal distance (t -1) and a second reference picture (t-2) having a second temporal distance (t-2) prior to the first temporal distance.

즉, 도 4에 도시한 바와 같이, 본 실시예의 영상 부호화 방법에 채용할 수 있는 화면 간 예측은 현재 픽쳐(current(t))의 현재 블록과 참조 픽쳐들(t-1, t-2)의 참조 블록들의 블록 매칭을 통해 상관성이 높은 블록을 이전에 부호화가 완료된 참조 픽쳐들(t-1, t-2)로부터 최적의 예측 블록을 찾는 움직임 추정을 수행할 수 있다. 정밀한 추정을 위해 필요에 따라 인접한 두 화소들 사이에 적어도 하나 이상의 부화소가 배열된 구조에 기반하는 보간(interpolation) 과정을 수행한 후, 최적의 예측 블록을 찾은 후에 움직임 보상을 하여 최종적인 예측 블록을 찾을 수 있다.That is, as shown in FIG. 4, inter-prediction that can be employed in the video encoding method of this embodiment is based on the current block of the current picture (current(t)) and the reference pictures (t-1, t-2). Through block matching of reference blocks, motion estimation may be performed to find an optimal prediction block from reference pictures (t-1, t-2) in which a block having a high correlation has previously been coded. After performing an interpolation process based on a structure in which at least one or more sub-pixels are arranged between two adjacent pixels as necessary for precise estimation, motion compensation is performed after finding an optimal prediction block to obtain the final prediction block can be found.

또한, 도 5에 도시한 바와 같이, 본 실시예의 영상 부호화 방법에 채용할 수 있는 화면 간 예측은 현재 픽쳐(current(t))을 기준으로 시간적으로 양방향에 존재하는 이미 부호화가 완료된 참조 픽쳐들(t-1, t+1)로부터 예측 블록을 생성할 수 있다. 또한, 1개 이상의 참조 픽쳐에서 2개의 예측 블록을 생성할 수 있다.In addition, as shown in FIG. 5, inter-prediction that can be employed in the video encoding method of the present embodiment involves reference pictures (which have already been coded) temporally in both directions based on the current picture (current(t)). A prediction block can be generated from t-1, t+1). Also, two prediction blocks can be generated from one or more reference pictures.

화면 간 예측을 통해 영상의 부호화를 수행할 경우, 최적의 예측 블록에 대한 움직임 벡터 정보와 참조 픽쳐에 대한 정보를 부호화한다. 본 실시예에서는 단방향 또는 양방향으로 예측 블록을 생성할 경우 참조 픽쳐 리스트를 달리 구성하여 해당 참조 픽쳐 리스트로부터 예측 블록을 생성할 수 있다. 기본적으로 시간적으로 현재 픽쳐 이전에 존재하는 참조 픽쳐는 리스트 0에 할당되고 현재 픽쳐 이후에 존재하는 참조 픽쳐는 리스트 1에 할당되어 관리될 수 있다. 참조 픽쳐 리스트 0를 구성할 때, 참조 픽쳐 리스트 0의 참조 픽쳐 허용 개수까지 채우지 못할 경우 현재 픽쳐 이후에 존재하는 참조 픽쳐를 할당할 수 있다. 이와 비슷하게 참조 픽쳐 리스트 1을 구성할 때, 참조 픽쳐 리스트 1의 참조 픽쳐 허용 개수까지 채우지 못할 경우 현재 픽쳐 이전에 존재하는 참조 픽쳐를 할당할 수 있다.When video encoding is performed through inter-prediction, motion vector information for an optimal prediction block and information for a reference picture are encoded. In this embodiment, when a prediction block is generated in a unidirectional or bidirectional manner, a reference picture list may be configured differently and a prediction block may be generated from the corresponding reference picture list. Basically, a reference picture existing before the current picture in time is assigned to list 0, and a reference picture existing after the current picture is assigned to list 1 and managed. When constructing the reference picture list 0, if the allowed number of reference pictures in the reference picture list 0 is not filled, a reference picture existing after the current picture may be allocated. Similarly, when constructing the reference picture list 1, if the number of reference pictures in the reference picture list 1 cannot be filled up to the allowed number, a reference picture existing before the current picture can be allocated.

도 6은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 단방향으로 예측 블록을 생성하는 경우를 설명하기 위한 예시도이다.6 is an exemplary diagram for explaining a case of generating a prediction block in one direction in an image encoding and decoding method according to an embodiment of the present invention.

도 6을 참조하면, 본 실시예에 따른 영상 부호화 및 복호화 방법에서는 기존과 같이 이전에 부호화된 참조 픽쳐(t-1, t-2)로부터 예측 블록을 찾을 수 있고, 이에 더하여 현재 픽쳐(current(t))에 이미 부호화가 완료된 영역으로부터 예측 블록을 찾을 수 있다.Referring to FIG. 6, in the video encoding and decoding method according to the present embodiment, prediction blocks can be found from previously encoded reference pictures (t-1, t-2) as in the past, and in addition to this, a current picture (current ( In t)), a prediction block may be found from an area where encoding has already been completed.

즉, 본 실시예에 따른 영상 부호화 및 복호화 방법에서는, 시간적으로 높은 상관성이 있는 이전에 부호화된 픽쳐(t-1, t-2)로부터 예측 블록을 생성한 것뿐만 아니라 공간적으로 상관성이 높은 예측 블록을 함께 찾도록 구현될 수 있다. 그러한 공간적으로 상관성이 높은 예측 블록을 찾는 것은 화면 내 예측의 방식으로 예측 블록을 찾는 것에 대응할 수 있다. 현재 픽쳐에서 부호화가 완료된 영역으로부터 블록 매칭을 수행하기 위해, 본 실시예의 영상 부호화 방법은 화면 내 예측 모드와 혼합하여 예측 후보와 관련된 정보에 대한 신택스(syntax)를 구성할 수 있다.That is, in the video encoding and decoding method according to the present embodiment, prediction blocks not only generated from previously encoded pictures (t-1, t-2) having high temporal correlation, but also spatially highly correlated prediction blocks It can be implemented to find together. Finding such a spatially correlated prediction block may correspond to finding the prediction block by way of intra-prediction. In order to perform block matching from an encoded region in the current picture, the video encoding method of the present embodiment may be mixed with an intra prediction mode to configure syntax for information related to prediction candidates.

예를 들어, n(n은 임의의 자연수) 가지의 화면 내 예측 모드를 지원하는 경우, 한 가지 모드를 화면 내 예측 후보군에 추가하여 n+1가지 모드를 지원하며 2M-1≤n+1<2M 를 만족시키는 M개의 고정 비트를 사용하여 예측 모드를 부호화할 수 있다. 또한, HEVC(high efficiency video coding)의 MPM(most probable mode)와 같이 가능성 높은 예측 모드의 후보군 중에서 선택하도록 구현될 수 있다. 또한, 예측 모드 부호화의 상위 단계에서 우선적으로 부호화할 수도 있다.For example, if n (n is an arbitrary natural number) intra-prediction modes are supported, one mode is added to the intra-prediction candidate group to support n+1 modes, and 2 M-1 ≤ n+1 A prediction mode can be encoded using M fixed bits satisfying <2 M. In addition, it may be implemented to select from a candidate group of highly probable prediction modes, such as the most probable mode (MPM) of high efficiency video coding (HEVC). In addition, encoding may be preferentially performed in a higher stage of prediction mode encoding.

현재 픽쳐에서 블록 매칭을 통해 예측 블록을 생성할 경우, 본 실시예의 영상 부호화 방법은 화면 간 예측 모드와 혼합하여 관련된 정보에 대한 신택스를 구성할 수도 있다. 추가적인 관련 예측 모드 정보로는 움직임 또는 이동(motion or displacement) 관련 정보가 이용될 수 있다. 움직임 또는 이동 관련 정보는 여러 벡터 후보 중 최적의 후보 정보, 최적의 후보 벡터와 실제 벡터와의 차분치, 참조 방향, 참조 픽쳐 정보 등을 포함할 수 있다.When a prediction block is generated through block matching in the current picture, the video encoding method of the present embodiment may be mixed with an inter prediction mode to configure syntax for related information. As additional related prediction mode information, motion or displacement related information may be used. Motion or motion-related information may include information about an optimal candidate among several vector candidates, a difference value between an optimal candidate vector and a real vector, a reference direction, reference picture information, and the like.

도 7은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 참조 픽쳐 리스트로부터 구성하는 예시도이다. 도 8은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 참조 픽쳐 리스트로부터 화면 간 예측을 수행하는 경우의 다른 예를 나타낸 예시도이다.7 is an exemplary view of constructing a reference picture list in an image encoding and decoding method according to an embodiment of the present invention. 8 is an exemplary diagram illustrating another example of performing inter prediction from a reference picture list in an image encoding and decoding method according to an embodiment of the present invention.

도 7을 참조하면, 본 실시예에 따른 영상 부호화 방법은, 현재 픽쳐(current(t))의 현재 블록에 대하여 각기 참조 픽쳐 리스트(reference list 0, reference list 1)로부터 화면 간 예측을 수행할 수 있다.Referring to FIG. 7 , in the video encoding method according to the present embodiment, inter-prediction may be performed on a current block of a current picture (current(t)) from reference picture lists (reference list 0 and reference list 1), respectively. there is.

도 7 및 도 8을 참조하면, 참조 픽쳐 리스트 0은 현재 픽쳐(t) 이전의 참조 픽쳐로 구성할 수 있는데, t-1, t-2는 각각 현재 픽쳐(t)의 픽쳐 오더 카운트(Picture Order Count, POC)보다 이전의 제1 시간적인 거리(t-1), 제2 시간적인 거리(t-2)를 가지는 참조 픽쳐들을 지시한다. 또한, 참조 픽쳐 리스트 1은 현재 픽쳐(t) 이후의 참조 픽쳐로 구성할 수 있는데, t+1, t+2는 각각 현재 픽쳐(t)의 POC보다 이후의 제1 시간적인 거리(t+1), 제2 시간적인 거리(t+2)를 가지는 참조 픽쳐들을 지시한다.Referring to FIGS. 7 and 8 , the reference picture list 0 can be composed of reference pictures prior to the current picture t, where t-1 and t-2 are picture order counts of the current picture t, respectively. Indicates reference pictures having a first temporal distance (t-1) and a second temporal distance (t-2) prior to Count, POC. In addition, the reference picture list 1 can be composed of reference pictures subsequent to the current picture (t), where t+1 and t+2 are the first temporal distance (t+1) subsequent to the POC of the current picture (t), respectively. ), indicating reference pictures having a second temporal distance (t+2).

참조 픽쳐 리스트 구성에 관한 전술한 예들은 시간적인 거리(본 예에서는 POC 기준)의 차이가 1인 참조 픽쳐들로 참조 픽쳐 리스트를 구성하는 예를 나타내고 있으나, 참조 픽쳐간의 시간적인 거리 차이를 다르게 구성할 수도 있다. 즉, 참조 픽쳐들의 인덱스 차이와 참조 픽쳐들의 시간적인 거리 차이가 비례하지 않을 수 있다는 것을 의미한다. 또한, 리스트 구성 순서를 시간적인 거리 기준으로 구성되지 않을 수도 있다. 이에 대한 내용은 후술할 참조 픽쳐 리스트 구성 예에서 확인할 수 있다.The above examples of constructing a reference picture list show an example of constructing a reference picture list with reference pictures having a difference in temporal distance (based on POC in this example) of 1, but constructing a different temporal distance difference between reference pictures. You may. That is, it means that the index difference between reference pictures and the temporal distance difference between reference pictures may not be proportional. In addition, the list construction order may not be configured based on temporal distance. Information on this can be confirmed in an example of a reference picture list configuration to be described later.

슬라이스 타입(I, P 또는 B)에 따라 리스트에 있는 참조 픽쳐로부터 예측을 수행할 수 있다. 그리고 현재 픽쳐(current(t))에서 블록 매칭을 통해 예측 블록을 생성할 경우, 참조 픽쳐 리스트(reference list 0, reference list 1)에 현재 픽쳐를 추가하여 화면 간 예측 방식으로 부호화를 수행할 수 있다. Prediction can be performed from a reference picture in the list according to the slice type (I, P or B). In addition, when a prediction block is generated from the current picture (current(t)) through block matching, the current picture can be added to the reference picture list (reference list 0, reference list 1) to perform encoding in an inter-prediction method. .

도 8에 도시한 바와 같이 참조 픽쳐 리스트 0(reference list 0)에 현재 픽쳐(t)를 추가하거나 또는 참조 픽쳐 리스트 1(reference list 1)에 현재 픽쳐(t)를 추가할 수 있다. 즉, 참조 픽쳐 리스트 0은 현재 픽쳐(t) 이전의 참조 픽쳐에 시간적인 거리(t)인 참조 픽쳐를 추가하여 구성할 수 있고, 참조 픽쳐 리스트 1은 현재 픽쳐(t) 이후의 참조 픽쳐에 시간적인 거리(t)인 참조 픽쳐를 추가하여 구성할 수도 있다. As shown in FIG. 8 , the current picture t can be added to reference picture list 0 or the current picture t can be added to reference picture list 1. That is, reference picture list 0 can be constructed by adding a reference picture that is a temporal distance (t) to a reference picture before the current picture (t), and reference picture list 1 is formed by adding a reference picture that is temporally distant (t) to a reference picture after the current picture (t). It can also be constructed by adding a reference picture with a constant distance (t).

예를 들어, 참조 픽쳐 리스트 0를 구성할 때 현재 픽쳐 이전의 참조 픽쳐를 참조 픽쳐 리스트 0에 할당하고 이어 현재 픽쳐(t)를 할당할 수 있고, 참조 픽쳐 리스트 1을 구성할 때 현재 픽쳐 이후의 참조 픽쳐를 참조 픽쳐 리스트 1에 할당하고 이어 현재 픽쳐(t)를 할당할 수 있다. 또는, 참조 픽쳐 리스트 0를 구성할 때 현재 픽쳐(t)를 할당하고 이어 현재 픽쳐 이전의 참조 픽쳐를 할당할 수 있고, 참조 픽쳐 리스트 1을 구성할 때 현재 픽쳐(t)를 할당하고 이어 현재 픽쳐 이후의 참조 픽쳐를 할당할 수 있다. 또는, 참조 픽쳐 리스트 0을 구성할 때 현재 픽쳐 이전의 참조 픽쳐를 할당하고 이어 현재 픽쳐 이후의 참조 픽쳐를 할당하고 현재 픽쳐(t)를 할당할 수 있다. 이와 비슷하게 참조 픽쳐 리스트 1을 구성할 때 현재 픽쳐 이후의 참조 픽쳐를 할당하고 이어 현재 픽쳐 이전의 참조 픽쳐를 할당하고 현재 픽쳐(t)를 할당할 수 있다. 위의 예들은 전술한 경우에만 특정하는 것은 아니며 서로의 조건이 뒤바뀌는 경우도 포함할 수 있고, 다른 경우의 예로 변형 또한 가능하다. For example, when constructing reference picture list 0, a reference picture prior to the current picture may be assigned to reference picture list 0, and then the current picture (t) may be assigned. A reference picture can be assigned to reference picture list 1, and then the current picture (t) can be assigned. Alternatively, when constructing the reference picture list 0, the current picture (t) may be allocated and then a reference picture prior to the current picture may be allocated. When constructing the reference picture list 1, the current picture (t) may be allocated and then the current picture Subsequent reference pictures can be assigned. Alternatively, when constructing the reference picture list 0, a reference picture prior to the current picture may be allocated, a reference picture subsequent to the current picture may be allocated, and the current picture (t) may be allocated. Similarly, when constructing the reference picture list 1, a reference picture subsequent to the current picture may be allocated, a reference picture prior to the current picture may be allocated, and the current picture (t) may be allocated. The above examples are not specific to the above-described case, and may include cases in which mutual conditions are reversed, and modifications are also possible as examples of other cases.

각 참조 픽쳐 리스트에 현재 픽쳐를 포함할 지 여부(예를 들어, 어떤 리스트에도 추가하지 않음 또는 리스트 0에만 추가 또는 리스트 1에만 추가 또는 리스트 0와 1에 같이 추가)는 부호화기 또는 복호화기에 동일한 설정이 가능하고, 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송이 가능하다. 이에 대한 정보는 고정 길이 이진화, 단삭 절단형 이진화, 절단형 이진화 등의 방법을 통해 부호화될 수 있다.Whether to include the current picture in each reference picture list (e.g., not added to any list, added only to list 0, added only to list 1, or added to lists 0 and 1 together) requires the same setting in the encoder or decoder. It is possible, and information about this can be transmitted in units such as sequences, pictures, and slices. This information may be encoded through a method such as fixed length binarization, truncated binarization, or truncated binarization.

본 실시예의 영상 부호화 및 복호화 방법은, 도 7의 방법과 달리, 현재 픽쳐(t)에서 블록 매칭을 수행하여 예측 블록을 선택하고, 이러한 예측 블록에 대한 관련 정보를 포함하는 참조 픽쳐 리스트를 구성하며, 이러한 참조 픽쳐 리스트를 영상 부호화 및 복호화에 이용하는데 차이가 있다. Unlike the method of FIG. 7, the video encoding and decoding method of this embodiment selects a prediction block by performing block matching on the current picture t, constructs a reference picture list including information related to the prediction block, and , there is a difference in using this reference picture list for video encoding and decoding.

참조 픽쳐 리스트 구성에 있어서 각 리스트 구성 순서 및 규칙, 각 리스트의 참조 픽쳐 허용 개수에 대한 설정을 달리할 수 있는데, 이는 현재 픽쳐의 리스트 포함여부(현재 픽쳐를 화면 간 예측에서의 참조 픽쳐로 포함할지 여부), 슬라이스 타입, 리스트 재구성 파라미터(리스트 0, 1에 각각 적용될 수도 있고, 리스트 0, 1에 같이 적용될 수도 있음), 픽쳐 집합(Group of Picture, GOP) 내의 위치, 시간적 계층 정보(temporal id) 등의 여러 요인 중 최소 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수도 있고, 명시적으로 관련 정보를 시퀀스, 픽쳐 등의 단위로 전송할 수 있다. 예를 들어, P 슬라이스인 경우 현재 픽쳐를 리스트에 포함하는 것과 관계없이 참조 픽쳐 리스트 0은 리스트 구성 규칙 A에 따를 수 있고, B 슬라이스인 경우 현재 픽쳐를 리스트에 포함하는 참조 픽쳐 리스트 0에는 리스트 구성 규칙 B, 참조 픽쳐 리스트 1에는 리스트 구성 규칙 C를 따를 수 있고, 현재 픽쳐를 포함하지 않는 참조 픽쳐 리스트 0에는 리스트 구성 규칙 D, 참조 픽쳐 리스트 1에는 리스트 구성 규칙 E에 따를 수 있으며, 리스트 구성 규칙 중 B와 D, C와 E는 같을 수도 있다. 리스트 구성 규칙은 상기 참조 픽쳐 리스트 구성 예에서 설명된 것과 같거나 변형된 방식으로 구성될 수 있다. 다른 예로, 현재 픽쳐를 리스트에 포함하는 경우에는 제 1 참조 픽쳐 허용 개수, 포함하지 않는 경우에는 제 2 참조 픽쳐 허용 개수를 설정할 수 있다. 제 1 참조 픽쳐 허용 개수와 제 2 참조 픽쳐 허용 개수는 같을 수도 있고 다를 수도 있으며, 제 1 참조 픽쳐 허용 개수와 제 2 참조 픽쳐 허용 개수의 차이가 1인 것을 기본 설정으로 둘 수도 있다. 다른 예로, 현재 픽쳐를 리스트에 포함하며 리스트 재구성 파라미터가 적용될 경우, 슬라이스 A에서는 모든 참조 픽쳐가 리스트 재구성 후보군이 될 수 있고, 슬라이스 B에서는 리스트 재구성 후보군에 일부 참조 픽쳐만 포함될 수 있다. 이 때, 슬라이스 A 또는 B는 현재 픽쳐의 리스트 포함여부, 시간적 계층 정보, 슬라이스 타입, 픽쳐 집합(Group of Picture, GOP) 내의 위치 등에 구분될 수 있고, 후보군에 포함 여부를 나누는 요인으로 참조 픽쳐의 픽쳐 오더 카운트(Picture Order Count, POC) 또는 참조 픽쳐 인덱스, 참조 예측 방향(현재 픽쳐 전후), 현재 픽쳐 여부 등에 의해 결정될 수 있다. In constructing a reference picture list, the order and rules for constructing each list and the allowable number of reference pictures in each list can be set differently. whether or not), slice type, list reconstruction parameter (may be applied to lists 0 and 1 respectively, or may be applied to lists 0 and 1 together), location in a group of pictures (GOP), temporal layer information (temporal id) etc. may be determined according to at least one or a combination of factors, and related information may be explicitly transmitted in units of sequences, pictures, and the like. For example, in the case of a P slice, the reference picture list 0 may follow list construction rule A regardless of whether the current picture is included in the list, and in the case of a B slice, the reference picture list 0 including the current picture in the list has a list construction Rule B, list construction rule C may be followed for reference picture list 1, list construction rule D may be followed for reference picture list 0 that does not include the current picture, list construction rule E may be followed for reference picture list 1, and list construction rules Among them, B and D, C and E may be the same. List construction rules may be constructed in the same way as described in the above reference picture list construction example or in a modified manner. As another example, when the current picture is included in the list, the allowed number of first reference pictures may be set, and when the current picture is not included in the list, the allowed number of second reference pictures may be set. The allowed number of first reference pictures and the allowed number of second reference pictures may be the same or different, and the default setting may be that the difference between the allowed number of first reference pictures and the allowed number of second reference pictures is 1. As another example, when the current picture is included in the list and the list reconstruction parameter is applied, all reference pictures may be list reconstruction candidates in slice A, and only some reference pictures may be included in the list reconstruction candidate group in slice B. At this time, slice A or B can be classified as whether it is included in the list of the current picture, temporal layer information, slice type, location in a picture set (Group of Pictures, GOP), etc. It may be determined by a picture order count (POC) or reference picture index, a reference prediction direction (before and after the current picture), whether or not the current picture is present, and the like.

전술한 구성에 의하면, 현재 픽쳐에서 화면 간 예측으로 부호화된 참조 블록을 이용할 수 있으므로, I 슬라이스의 움직인 예측에서도 화면 간 예측을 허용 또는 이용할 수 있게 된다.According to the configuration described above, since a reference block coded by inter-prediction in the current picture can be used, inter-prediction can be allowed or used even in I-slice motion prediction.

또한, 참조 픽쳐 리스트를 구성할 때, 슬라이스 타입에 따라 인덱스 할당 또는 리스트 구성 순서를 달리할 수 있다. I 슬라이스의 경우, 현재 픽쳐(current(t))에서 상기 참조 픽쳐 리스트 구성 예와 같이 우선순위를 높게 하여 더 적은 인덱스(예를 들어, idx=0, 1, 2와 같이)를 사용하고, 해당 참조 픽쳐 리스트의 참조 픽쳐 허용 개수(C)를 최대값으로 하는 이진화(고정 길이 이진화, 단삭 절단형 이진화, 절단형 이진화 등) 통해 영상 부호화에서의 비트량을 줄일 수 있다. 또한, P 또는 B 슬라이스의 경우, 현재 픽쳐에서 블록 매칭을 수행하여 현재 블록의 참조 픽쳐를 예측 후보로 선택할 확률이 다른 참조 픽쳐를 통해 예측 후보를 선택하는 확률보다 낮다고 판단되는 상황이라 하면, 현재 픽쳐의 블록 매칭에 대한 우선순위를 뒤로 설정하여 더 높은 인덱스(예를 들어, idx= C, C-1와 같이)를 사용하여 해당 참조 픽쳐 리스트의 참조 픽쳐 허용 개수를 최대값으로 하는 다양한 방법의 이진화를 통해 영상 부호화에서의 비트량을 줄일 수 있다. 위의 예에서 현재 픽쳐의 우선순위 설정은 상기 참조 픽쳐 리스트 구성 예에서 설명된 것과 같거나 변형된 방식으로 구성될 수 있다. 또한, 슬라이스 타입에 따라(예를 들어, I 슬라이스) 참조 픽쳐 리스트를 구성하지 않음으로써 참조 픽쳐에 대한 정보를 생략하는 것이 가능하다. 예컨대, 기존의 화면 간 예측을 통해 예측 블록을 생성하되 화면 간 예측 모드에서의 움직임 정보에서 참조 픽쳐 정보를 제외한 나머지로 화면간 예측 정보를 표현할 수 있다. In addition, when constructing a reference picture list, the order of index allocation or list construction may be different according to the slice type. In the case of an I slice, fewer indices (eg, idx = 0, 1, 2) are used in the current picture (current (t)) by increasing the priority as in the above reference picture list configuration example, and corresponding The amount of bits in video encoding can be reduced through binarization (fixed-length binarization, truncation-type binarization, truncated-type binarization, etc.) in which the allowable number (C) of reference pictures in the reference picture list is set to the maximum value. In addition, in the case of a P or B slice, if it is determined that the probability of selecting a reference picture of the current block as a prediction candidate by performing block matching on the current picture is lower than the probability of selecting a prediction candidate through other reference pictures, the current picture Binarization of various methods that sets the priority for block matching of to the maximum value by using a higher index (eg, idx = C, C-1) to maximize the number of allowed reference pictures in the reference picture list It is possible to reduce the amount of bits in video encoding through In the above example, the priority setting of the current picture may be configured in the same way as described in the reference picture list construction example or in a modified manner. In addition, it is possible to omit information on a reference picture by not constructing a reference picture list according to a slice type (eg, I slice). For example, a prediction block may be generated through existing inter prediction, but inter prediction information may be expressed with the rest excluding reference picture information from motion information in the inter prediction mode.

현재 픽쳐에서 블록 매칭을 수행하는 방식은 슬라이스 타입에 따라 지원 여부를 결정할 수 있다. 예를 들어, 현재 블록에서의 블록 매칭을 I 슬라이스에서는 지원하지만 P 슬라이스나 B 슬라이스에서는 지원하지 않도록 설정할 수도 있고, 다른 예로의 변형 또한 가능하다. 또한, 현재 픽쳐에서 블록 매칭을 지원하는 방식은 픽쳐, 슬라이스, 타일 등 단위로 지원 여부를 결정할 수도 있고, 픽쳐 집합(Group of Picture, GOP) 내의 위치, 시간적 계층 정보(temporal ID) 등에 따라 결정할 수도 있다. 이러한 설정 정보는 영상 부호화 과정이나 부호화기에서 복호화기로 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송될 수 있다. 또한, 상위 레벨 단위에서 위와 관련된 설정 정보 또는 신택스가 존재하며 설정 관련 동작이 온(on)되는 상황이라도 하위 레벨 단위에서 위와 동일한 설정 정보 또는 신택스가 존재할 때, 하위 레벨 단위에서의 설정 정보가 상위 레벨 단위에서의 설정 정보를 우선할 수 있다. 예를 들어, 동일 또는 유사한 설정 정보를 시퀀스, 픽쳐, 슬라이스에서 처리한다면, 시퀀스 단위보다는 픽쳐 단위가, 픽쳐 단위보다는 슬라이스 단위가 우선순위를 가질 수 있다.The method of performing block matching in the current picture may determine whether to support it according to the slice type. For example, block matching in the current block may be set to be supported in I slice but not supported in P slice or B slice, and other modifications are also possible. In addition, the method for supporting block matching in the current picture may be determined in units of pictures, slices, tiles, etc., or may be determined according to positions in a group of pictures (GOP), temporal layer information (temporal ID), and the like. there is. Such setting information may be transmitted in units of sequences, pictures, slices, or the like during an image encoding process or from an encoder to a decoder. In addition, when setting information or syntax related to the above exists in a higher level unit and the same setting information or syntax as above exists in a lower level unit even in a situation where a setting related operation is turned on, the setting information in a lower level unit is set at a higher level. Priority can be given to setting information in units. For example, if the same or similar setting information is processed in sequences, pictures, and slices, a picture unit may have priority over a sequence unit, and a slice unit may have priority over a picture unit.

도 9는 본 발명의 일실시예에 따른 영상 부호화 방법에서 화면 내 예측을 설명하기 위한 예시도이다.9 is an exemplary diagram for explaining intra-prediction in an image encoding method according to an embodiment of the present invention.

도 9를 참조하면, 본 실시예에 따른 화면 내 예측 방법은, 참조 화소 채움(reference sample padding), 참조 화소 필터링(reference sample filtering), 화면 내 예측(intra prediciton) 및 경계 필터링(boundary filtering)의 일련의 단계들을 포함할 수 있다.Referring to FIG. 9 , the intra prediction method according to the present embodiment includes reference sample padding, reference sample filtering, intra prediction, and boundary filtering. It may include a series of steps.

참조 화소 채움 단계는 참조 화소 구성 단계의 예시일 수 있고, 참조 화소 필터링 단계는 참조 화소 필터부로 지칭될 수 있고, 화면 내 예측은 예측 블록 생성 단계와 예측 모드 부호화 단계를 포함할 수 있으며, 경계 필터링은 후처리 필터 단계의 일실시예에 대한 예시일 수 있다.The reference pixel filling step may be an example of the reference pixel construction step, the reference pixel filtering step may be referred to as a reference pixel filtering unit, and intra-prediction may include a prediction block generating step and a prediction mode encoding step, and boundary filtering. may be an example of an embodiment of a post-processing filter step.

즉, 본 실시예의 영상 부호화 장치에서 실행되는 화면 내 예측은 참조 화소 구성 단계, 참조 화소 필터링 단계, 예측 블록 생성 단계, 예측 모드 부호화 단계 및 후처리 필터링 단계를 포함할 수 있다. 여러 가지 환경 요인 예컨대, 블록 크기, 블록의 형태, 블록 위치, 예측 모드, 예측 방법, 양자화 파라미터 등에 따라서 전술한 과정들 중 하나 또는 일부는 생략될 수 있고, 다른 과정이 추가될 수도 있으며, 위에 기재된 순서가 아닌 다른 순서로 변경될 수 있다.That is, intra-prediction executed by the video encoding apparatus of the present embodiment may include a reference pixel configuration step, a reference pixel filtering step, a prediction block generation step, a prediction mode encoding step, and a post-processing filtering step. Depending on various environmental factors, such as block size, block shape, block position, prediction mode, prediction method, quantization parameter, etc., one or part of the above-described processes may be omitted or other processes may be added, as described above. It can be changed in a different order than the order.

전술한 참조 화소 구성 단계, 참조 화소 필터링 단계, 예측 블록 생성 단계, 예측 모드 부호화 단계 및 후처리 필터링 단계는 메모리에 저장되는 소프트웨어 모듈들을 메모리에 연결되는 프로세서가 실행하는 형태로 구현될 수 있다. 따라서 이하의 설명에서는 설명의 편의상 각 단계를 구현하는 소프트웨어 모듈과 이를 실행하는 프로세서의 조합에 의해 생성되는 기능부 또는 이러한 기능부의 기능을 수행하는 구성부로서 각각 참조 화소 구성부, 참조 화소 필터부, 예측 블록 생성부, 예측 모드 부호화부 및 후처리 필터부를 각 단계의 실행 주체로서 지칭하기로 한다.The above-described reference pixel configuration step, reference pixel filtering step, prediction block generation step, prediction mode encoding step, and post-processing filtering step may be implemented in a form in which a processor connected to the memory executes software modules stored in a memory. Therefore, in the following description, for convenience of explanation, a functional unit generated by a combination of a software module implementing each step and a processor executing the same or a component performing the function of the functional unit is a reference pixel configuration unit, a reference pixel filter unit, A prediction block generation unit, a prediction mode encoding unit, and a post-processing filter unit will be referred to as execution subjects of each stage.

각 구성요소를 좀더 구체적으로 설명하면, 참조 화소 구성부는 참조 화소 채움을 통해 현재 블록의 예측에 사용될 참조 화소를 구성한다. 참조 화소가 존재하지 않거나 이용 불가한 경우, 참조 화소 채움은 이용가능한 가까운 화소로부터 값을 복사 등의 방법을 하여 참조 화소에 사용할 수 있다. 값의 복사에는 복원된 픽쳐 버퍼(decoded picture buffer, DPB)가 이용될 수 있다.Describing each component in more detail, the reference pixel constructing unit configures a reference pixel to be used for prediction of the current block through reference pixel filling. If the reference pixel does not exist or is unavailable, the reference pixel filling may be used for the reference pixel by copying a value from an available nearby pixel. For value copying, a decoded picture buffer (DPB) may be used.

즉, 화면 내 예측은 현재 픽쳐의 이전에 부호화가 완료된 블록들의 참조 화소를 사용하여 예측을 수행한다. 이를 위해, 참조 화소 구성 단계에서는 현재 블록의 이웃 블록 즉, 왼쪽, 왼쪽 위, 왼쪽 아래, 위쪽, 오른쪽 위 블록들 등과 같은 인접한 화소들을 주로 참조 화소로 사용한다. 상기 참조 화소를 위한 이웃 블록의 후보군은 블록의 부호화 순서를 래스터 스캔(raster scan) 또는 제트 스캔(z-scan)를 따를 경우의 예시일 뿐, 역 제트 스캔(inverse z-scan) 등과 같은 스캔이 부호화 순서 스캔 방식으로 사용될 경우에는 위의 블록들에 추가로 오른쪽, 오른쪽 아래, 아래 블록 등과 같은 인접 화소들도 참조 화소로 사용할 수 있다.That is, intra-prediction is performed using reference pixels of previously coded blocks of the current picture. To this end, in the reference pixel configuration step, neighboring blocks of the current block, that is, neighboring pixels such as left, upper left, lower left, upper, and upper right blocks are mainly used as reference pixels. The candidate group of neighboring blocks for the reference pixel is only an example when the encoding order of blocks follows raster scan or z-scan, and scans such as inverse z-scan In the case of using the encoding order scan method, adjacent pixels such as the right block, the lower right block, and the lower block may be used as reference pixels in addition to the blocks above.

또한, 구현에 따라서 화면 내 예측의 단계별 구성에 따라 바로 인접한 화소 외의 추가적인 화소들이 대체 또는 기존 참조 화소와 혼합되어 사용될 수 있다.Also, depending on the implementation, additional pixels other than immediately adjacent pixels may be used as replacements or mixed with existing reference pixels according to the step-by-step configuration of intra-prediction.

또한, 화면 내 예측의 모드 중 방향성을 갖는 모드로 예측이 되는 경우, 정수 단위의 참조 화소를 선형 보간을 통해 소수 단위의 참조 화소를 생성할 수 있다. 정수 단위 위치에 존재하는 참조 화소를 통해 예측을 수행하는 모드는 수직, 수평, 45도, 135도를 갖는 일부 모드를 포함하며, 위 예측 모드들에 대해서는 소수 단위의 참조 화소를 생성하는 과정은 필요하지 않을 수 있다. 상기 예측 모드를 제외한 다른 방향성을 가진 예측 모드들은 보간되는 참조 화소는 1/2, 1/4, 1/8, 1/16, 1/32, 1/64 와 같이 1/2의 지수승의 보간 정밀도를 가질 수도 있고, 1/2의 배수의 정밀도를 가질 수도 있다. 이는 지원되는 예측 모드의 개수 또는 예측 모드의 예측 방향 등에 따라 보간 정밀도가 결정될 수 있기 때문이다. 픽쳐, 슬라이스, 타일, 블록 등에서 항상 고정적인 보간 정밀도를 지원할 수도 있고, 블록의 크기, 블록의 형태, 지원되는 모드의 예측 방향 등에 따라 적응적인 보간 정밀도가 지원될 수도 있다. 이 때, 모드의 예측 방향은 특정 선 기준(예를 들어, 좌표평면 상의 양<+>의 x축)으로 상기 모드가 가리키는 방향의 기울기 정보 또는 각도 정보로 표현될 수 있다.In addition, when prediction is performed in a directional mode among intra-prediction modes, reference pixels in fractional units may be generated through linear interpolation of reference pixels in integer units. Modes that perform prediction through reference pixels existing at integer unit positions include some modes having vertical, horizontal, 45 degrees, and 135 degrees, and for the above prediction modes, a process of generating reference pixels in decimal units is required. may not For prediction modes with other directions other than the prediction mode, interpolated reference pixels are interpolated by powers of 1/2, such as 1/2, 1/4, 1/8, 1/16, 1/32, and 1/64. It may have precision, or it may have precision of a multiple of 1/2. This is because interpolation accuracy may be determined according to the number of supported prediction modes or the prediction direction of the prediction mode. A fixed interpolation precision may always be supported in a picture, slice, tile, block, etc., or adaptive interpolation precision may be supported according to the size of a block, the shape of a block, the prediction direction of a supported mode, and the like. At this time, the prediction direction of the mode may be expressed as tilt information or angle information of a direction indicated by the mode with a specific line reference (eg, the x-axis of positive <+> on the coordinate plane).

보간 방법으로는 바로 인접한 정수 화소를 통해 선형 보간을 수행하기도 하지만 그 외의 보간 방법을 지원할 수 있다. 보간을 위해 1개 이상의 필터 종류 및 탭의 개수 예를 들어, 6-tap 위너 필터, 8-tap 칼만 필터 등을 지원할 수 있으며, 블록의 크기, 예측 방향 등에 따라 어떤 보간을 수행할 것인지를 결정할 수 있다. 또한, 관련 정보는 시퀀스, 픽쳐, 슬라이스, 블록 등의 단위로 전송될 수 있다. As an interpolation method, linear interpolation is performed through immediately adjacent integer pixels, but other interpolation methods may be supported. For interpolation, one or more types of filters and the number of taps, for example, a 6-tap Wiener filter and an 8-tap Kalman filter can be supported, and the type of interpolation to be performed can be determined according to the block size and prediction direction. there is. In addition, related information may be transmitted in units of sequences, pictures, slices, blocks, and the like.

참조 화소 필터부는 참조 화소를 구성한 후 부호화 과정에서 남아있는 열화를 줄여줌으로써 예측 효율을 높여줄 목적으로 참조 화소에 필터링을 수행할 수 있다. 참조 화소 필터부는, 블록의 크기, 형태 및 예측 모드에 따라 필터의 종류 및 필터링의 적용 유무를 묵시적 또는 명시적으로 결정할 수 있다. 즉, 같은 탭(tap)의 필터라도 필터 종류에 따라 필터 계수를 다르게 결정할 수 있다. 예를 들어, [1,2,1]/4, [1,6,1]/8과 같은 3 탭 필터를 사용할 수 있다.The reference pixel filter unit may perform filtering on the reference pixel for the purpose of increasing prediction efficiency by reducing deterioration remaining in an encoding process after constructing the reference pixel. The reference pixel filter unit may implicitly or explicitly determine the type of filter and whether to apply filtering according to the size, shape, and prediction mode of a block. That is, even filters of the same tap may differently determine filter coefficients according to filter types. For example, a 3-tap filter such as [1,2,1]/4 or [1,6,1]/8 can be used.

또한, 참조 화소 필터부는, 추가적으로 비트를 보낼지 안 보낼지를 결정하여 필터링 적용 여부를 결정할 수 있다. 예를 들어, 묵시적인 경우, 참조 화소 필터부는 주변 참조 블록에서의 화소들의 특성(분산, 표준편차 등)에 따라 필터링 적용 여부를 판단할 수 있다.Also, the reference pixel filter unit may determine whether or not to transmit additional bits to determine whether to apply filtering. For example, in the implicit case, the reference pixel filter unit may determine whether or not to apply filtering according to characteristics (variance, standard deviation, etc.) of pixels in neighboring reference blocks.

또한, 참조 화소 필터부는, 관련 플래그가 잔차 계수, 화면 내 예측 모드 등에 기설정된 숨김(hiding) 조건을 만족하는 경우, 필터링 적용 여부를 판단할 수 있다. 필터의 탭수는, 예를 들어, 작은 블록(blk)에서는 [1,2,1]/4와 같은 3-tap, 큰 블록(blk)에서는 [2,3,6,3,2]/16과 같은 5-tap으로 설정될 수 있고, 적용 횟수는 필터링을 수행하지 않을 것인지, 1번 필터링할 것인지, 2번 필터링할 것인지 등으로 결정될 수 있다.In addition, the reference pixel filter unit may determine whether to apply filtering when a related flag satisfies a predetermined hiding condition, such as a residual coefficient or an intra-prediction mode. The number of taps of the filter is, for example, 3-tap such as [1,2,1]/4 for small blocks (blk), [2,3,6,3,2]/16 and [2,3,6,3,2]/16 for large blocks (blk). It can be set to the same 5-tap, and the number of times of application can be determined by not performing filtering, filtering once, or filtering twice.

또한, 참조 화소 필터부는 현재 블록의 가장 인접한 참조 화소에 대해 기본적으로 필터링을 적용할 수 있다. 가장 인접한 참조 화소 외에 추가적인 참조 화소들 또한 필터링 과정에 고려될 수 있다. 예를 들어, 가장 인접한 참조 화소를 대체하여 추가적인 참조 화소들에 필터링을 적용할 수도 있고, 가장 인접한 참조 화소에 추가적인 참조 화소들을 혼용하여 필터링을 적용할 수도 있다.Also, the reference pixel filter unit may basically apply filtering to the nearest reference pixel of the current block. In addition to the nearest reference pixel, additional reference pixels may also be considered in the filtering process. For example, filtering may be applied to additional reference pixels by replacing the nearest reference pixel, or filtering may be applied by mixing additional reference pixels to nearest reference pixels.

상기 필터링은 고정적 또는 적응적으로 적용될 수 있는데, 이는 현재 블록의 크기 또는 이웃 블록의 크기, 현재 블록 또는 이웃 블록의 부호화 모드, 현재 블록과 이웃 블록의 블록 경계 특성(예를 들어, 부호화 단위의 경계인지 변환 단위의 경계인지 등), 현재 블록 또는 이웃 블록의 예측 모드 또는 방향, 현재 블록 또는 이웃 블록의 예측 방식, 양자화 파라미터 등의 요인 중에서 최소 하나 이상의 요인 또는 이들의 조합에 따라 결정이 될 수 있다. 이에 대한 결정은 부호화기 또는 복호화기에 동일한 설정을 가질 수 있고(묵시적), 부호화 비용 등을 고려하여 결정될 수도 있다(명시적). 기본적으로 적용되는 필터는 저역통과 필터(low pass filter)이며, 위에 명시된 여러 요인에 따라 필터 탭수, 필터 계수, 필터 플래그 부호화 여부, 필터 적용 횟수 등이 결정될 수 있으며, 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스, 블록 등의 단위에서 설정이 가능하며, 관련 정보를 복호화기에 전송할 수 있다.The filtering may be applied statically or adaptively, which includes the size of the current block or the size of the neighboring block, the coding mode of the current block or the neighboring block, the block boundary characteristics of the current block and the neighboring block (eg, the boundary of the coding unit). It may be determined according to at least one factor or a combination thereof among factors such as boundary of a perceptual transformation unit, etc.), a prediction mode or direction of a current block or a neighboring block, a prediction method of the current block or a neighboring block, a quantization parameter, and the like. . This decision may have the same settings in the encoder or decoder (implicit), or may be determined in consideration of encoding cost (explicit). The filter that is basically applied is a low pass filter, and the number of filter taps, filter coefficients, whether or not to code the filter flag, and the number of filter applications can be determined according to the various factors specified above. It can be set in units such as slices and blocks, and related information can be transmitted to the decoder.

예측 블록 생성부는 화면 내 예측에 있어서 참조 화소를 통해 외삽 또는 보외(extrapolation) 방식이나, 참조 화소의 평균값(DC) 또는 평면(planar) 모드와 같은 내삽(interpolation) 방식이나, 참조 화소의 복사(copy) 방식으로 예측 블록을 생성할 수 있다. 참조 화소의 복사의 경우 하나의 참조 화소를 복사하여 하나의 이상의 예측 화소를 생성할 수도 있고, 하나 이상의 참조 화소를 복사하여 하나 이상의 예측 화소를 생성할 수 있으며, 복사한 참조 화소의 개수는 복사된 예측 화소의 개수와 동일하거나 적을 수 있다. The prediction block generation unit uses an extrapolation or extrapolation method through reference pixels in prediction within a screen, an interpolation method such as the average value (DC) of reference pixels or a planar mode, or a copy of reference pixels. ) method to generate a prediction block. In the case of copying a reference pixel, one reference pixel may be copied to generate one or more prediction pixels, or one or more reference pixels may be copied to generate one or more prediction pixels, and the number of copied reference pixels is the number of copied reference pixels. It may be equal to or less than the number of predicted pixels.

또한, 상기 예측 방식에 따라 방향성 예측 방식과 비방향성 예측 방식으로 분류가 가능하며, 상세하게는 방향성 예측 방식은 직선 방향성 방식과 곡선 방향성 방식으로 분류가 가능하다. 직선 방향성 방식은 외삽 또는 보외 방식을 차용하나 예측 블록의 화소는 예측 방향 선상에 놓인 참조 화소를 통해 생성하며, 곡선 방향성 방식은 외삽 또는 보외 방식을 차용하나 예측 블록의 화소는 예측 방향 선상에 놓인 참조 화소를 통해 생성하되 블록의 세부 방향성(예를 들어, 에지<Edge>)를 고려하여 화소 단위의 부분적인 예측 방향의 변경이 허용되는 방식을 의미한다. 본 발명의 영상 부호화 및 복호화 방법에서 방향성 예측 모드의 경우 직선 방향성 방식 위주로 설명을 할 것이다. 또한, 상기 방향성 예측 방식의 경우 인접한 예측 모드 간의 간격은 균등하거나 비균등일 수 있으며, 이는 블록의 크기 또는 형태에 따라 결정될 수 있다. 예를 들어, 블록 분할부를 통해 현재 블록이 M×N의 크기와 형태를 갖는 블록을 획득했을 때, M과 N이 같을 경우에는 예측 모드 간의 간격은 균등일 수 있으며, M과 N이 다를 경우에는 예측 모드 간의 간격은 비균등일 수 있다. 다른 예로, M이 N보다 큰 경우에는 수직 방향성을 갖는 모드들은 수직 모드(90도)에 가까운 예측 모드 사이에는 더 세밀한 간격을 할당하고, 수직 모드에 먼 예측 모드에는 넓은 간격을 할당할 수 있다. N이 M보다 큰 경우에는 수평 방향성을 갖는 모드들은 수평 모드(180도)에 가까운 예측 모드 사이에는 더 세밀한 간격을 할당하고, 수평 모드에 먼 예측 모드에는 넓은 간격을 할당할 수 있다. 위의 예들은 전술한 경우에만 특정하는 것은 아니며 서로의 조건이 뒤바뀌는 경우도 포함할 수 있고, 다른 경우의 예로 변형 또한 가능하다. 이 때, 예측 모드 간의 간격은 각 모드의 방향성을 나타내는 수치 기반으로 계산될 수 있으며, 예측 모드의 방향성은 방향의 기울기 정보 또는 각도 정보로 수치화될 수 있다.In addition, according to the prediction method, it can be classified into a directional prediction method and a non-directional prediction method, and in detail, the directional prediction method can be classified into a linear directional method and a curved directional method. The linear directivity method borrows an extrapolation or extrapolation method, but the pixels of the prediction block are generated through reference pixels lying on the prediction direction line, and the curve directivity method borrows the extrapolation or extrapolation method, but the pixels of the prediction block are generated through the reference pixels lying on the prediction direction line. It is generated through pixels, but it means a method in which a partial prediction direction change in pixel units is allowed in consideration of the detailed directionality (eg, edge <Edge>) of the block. In the case of the directional prediction mode in the video encoding and decoding method of the present invention, the description will be focused on the linear directional method. In addition, in the case of the directional prediction method, intervals between adjacent prediction modes may be equal or non-uniform, which may be determined according to the size or shape of a block. For example, when a block having a size and shape of M×N is obtained through a block divider, when M and N are the same, the interval between prediction modes may be equal, and when M and N are different, In , intervals between prediction modes may be non-uniform. As another example, if M is greater than N, modes with vertical direction may allocate finer intervals between prediction modes close to the vertical mode (90 degrees), and allocate wider intervals to prediction modes far from the vertical mode. When N is greater than M, modes having horizontal directionality may allocate finer intervals between prediction modes closer to the horizontal mode (180 degrees) and allocate wider intervals to prediction modes farther from the horizontal mode. The above examples are not specific to the above-described case, and may include cases in which mutual conditions are reversed, and modifications are also possible as examples of other cases. In this case, the interval between prediction modes may be calculated based on a numerical value indicating the directionality of each mode, and the directionality of the prediction modes may be digitized with direction gradient information or angle information.

또한, 위의 방법 외에 공간적인 상관성을 이용하는 다른 방법 등을 포함하여 예측 블록을 생성할 수 있다. 예를 들어, 현재 픽쳐를 참조 픽쳐 삼아 움직임 탐색 및 보상과 같은 화면 간 예측 방식을 이용한 참조 블록을 예측 블록으로 생성할 수 있다. 예측 블록 생성 단계는 상기 예측 방식에 따라 참조 화소를 사용하여 예측 블록을 생성할 수 있다. 즉, 상기 예측 방식에 따라 기존의 화면 내 예측 방식의 외삽, 내삽, 복사, 평균 등의 방향성 예측 또는 비방향성 예측 방식을 통해 예측 블록을 생성할 수 있고, 화면 간 예측 방식을 사용하여 예측 블록을 생성할 수 있으며, 그 외의 추가적인 방법도 사용될 수 있다.In addition, a prediction block may be generated by using other methods other than the above method using spatial correlation. For example, a reference block using an inter prediction method such as motion search and compensation may be generated as a prediction block using a current picture as a reference picture. In the prediction block generating step, a prediction block may be generated using a reference pixel according to the prediction method. That is, according to the prediction method, a prediction block can be generated through a directional prediction or a non-directional prediction method such as extrapolation, interpolation, copy, average, etc. of the existing intra prediction method, and the prediction block can be generated using the inter prediction method. can be generated, and other additional methods may be used.

상기 화면 내 예측 방식은 부호화기 또는 복호화기의 동일한 설정 하에 지원될 수 있으며, 슬라이스 타입, 블록의 크기, 블록의 형태 등에 따라 결정될 수 있다. 화면 내 예측 방식은 상기 언급된 예측 방식 중 최소 하나 이상의 방식 또는 이들의 조합에 따라 지원될 수 있다. 화면 내 예측 모드는 상기 지원되는 예측 방식에 따라 구성될 수 있다. 지원되는 화면 내 예측 모드의 개수는 상기 예측 방식, 슬라이스 타입, 블록의 크기, 블록의 형태 등에 따라 결정될 수 있다. 상기 관련 정보들은 시퀀스, 픽쳐, 슬라이스, 블록 등의 단위에서 설정 및 전송이 가능하다.The intra-prediction method may be supported under the same setting of an encoder or a decoder, and may be determined according to a slice type, block size, block shape, and the like. The intra-prediction scheme may be supported according to at least one or a combination of the above-mentioned prediction schemes. An intra-prediction mode may be configured according to the supported prediction method. The number of prediction modes within a supported picture may be determined according to the prediction method, slice type, block size, block shape, and the like. The related information can be set and transmitted in units such as sequences, pictures, slices, and blocks.

예측 모드 부호화에 의해 실행되는 예측 모드 부호화 단계는 부호화 비용 측면에서 각 예측 모드에 따른 부호화 비용이 최적인 모드를 현재 블록의 예측 모드로 결정할 수 있다.In the prediction mode encoding step performed by prediction mode encoding, a mode having an optimal encoding cost according to each prediction mode may be determined as a prediction mode of the current block in terms of encoding cost.

일례로, 예측 모드 부호화부는 예측 모드 비트를 줄이기 위한 목적으로 하나 이상의 이웃 블록의 모드를 현재 블록 모드 예측에 이용할 수 있다. 현재 블록의 모드와 동일할 확률이 높은 모드(most_probable_mode, MPM) 후보군으로 포함할 수 있는데, 이웃 블록의 모드들은 위의 후보군에 포함될 수 있다. 예를 들어, 현재 블록의 왼쪽, 왼쪽 위, 왼쪽 아래, 위쪽, 오른쪽 위 등의 블록의 예측 모드를 위의 후보군에 포함할 수 있다.For example, the prediction mode encoder may use modes of one or more neighboring blocks for prediction of a current block mode for the purpose of reducing prediction mode bits. A mode (most_probable_mode, MPM) with a high probability of being identical to the mode of the current block may be included as a candidate group, and modes of neighboring blocks may be included in the above candidate group. For example, prediction modes of blocks such as the left, upper left, lower left, upper, and upper right blocks of the current block may be included in the candidate group.

예측 모드의 후보군은 이웃 블록의 위치, 이웃 블록의 우선순위, 분할 블록에서의 우선순위, 이웃 블록의 크기 또는 형태, 기설정된 특정 모드, (색차 블록인 경우) 휘도 블록의 예측 모드 등의 요인 중 최소 하나 이상의 요인 또는 그들의 조합에 따라 구성될 수 있으며, 관련 정보는 시퀀스, 픽쳐, 슬라이스, 블록 등의 단위로 전송할 수 있다.The prediction mode candidate group is selected from among factors such as location of neighboring blocks, priorities of neighboring blocks, priorities in divided blocks, sizes or shapes of neighboring blocks, predetermined specific modes, and prediction modes of luminance blocks (in the case of chrominance blocks). It can be configured according to at least one factor or a combination thereof, and related information can be transmitted in units such as sequences, pictures, slices, and blocks.

예를 들어, 현재 블록과 이웃한 블록이 2개 이상의 블록으로 분할되어 있을 경우, 분할된 블록 중 어느 블록의 모드를 현재 블록의 모드 예측 후보로 포함할 지는 부호화기 또는 복호화기의 동일한 설정하에 결정할 수 있다. 예를 들어, 현재 블록(M×M)의 이웃 블록 중 왼쪽 블록은 블록 분할부에서 쿼드 트리 분할을 수행하여 분할 블록이 3개로 구성되어 있으며 위에서 아래 방향으로 M/2×M/2, M/4×M/4, M/4×M/4의 블록을 포함할 경우, 블록 크기 기준으로 M/2×M/2 블록의 예측 모드를 현재 블록의 모드 예측 후보로 포함할 수 있다. 다른 예로, 현재 블록(N×N)의 이웃 블록 중 위쪽 블록은 블록 분할부에서 바이너리 트리 분할을 수행하여 분할 블록이 3개로 구성되어 있으며 왼쪽에서 오른쪽 방향으로 N/4×N, N/4×N, N/2×N의 블록을 포함할 경우, 기설정된 순서(왼쪽에서 오른쪽으로 우선순위가 할당됨)에 따라 왼쪽에서 첫번째 N/4×N 블록의 예측 모드를 현재 블록의 모드 예측 후보로 포함할 수 있다. For example, when a current block and a neighboring block are divided into two or more blocks, the mode of which block among the divided blocks is to be included as a mode prediction candidate for the current block can be determined under the same setting of the encoder or decoder. there is. For example, the block to the left of the neighboring blocks of the current block (M×M) is composed of three split blocks by performing quad tree split in the block splitter, and M/2×M/2, M/2×M/2, M/2×M/2 from top to bottom. When a block of 4×M/4 or M/4×M/4 is included, the prediction mode of the M/2×M/2 block based on the block size may be included as a mode prediction candidate of the current block. As another example, the upper block among the neighboring blocks of the current block (N×N) performs binary tree splitting in the block divider, and consists of three split blocks, N/4×N, N/4× from left to right. When N, N/2×N blocks are included, the prediction mode of the first N/4×N block from the left is used as a mode prediction candidate for the current block according to a preset order (priorities are assigned from left to right). can include

다른 예로, 현재 블록과 이웃한 블록의 예측 모드가 방향성 예측 모드일 경우, 해당 모드의 예측 방향과 인접한 예측 모드(상기 모드의 방향의 기울기 정보 또는 각도 정보 측면)를 현재 블록의 모드 예측 후보군에 포함할 수 있다. 또한, 기설정된 모드(planar, DC, 수직, 수평 등)은 이웃 블록의 예측 모드 구성 또는 조합에 따라 우선적으로 포함될 수 있다. 또한, 이웃 블록의 예측 모드 중 발생 빈도가 높은 예측 모드를 우선적으로 포함할 수 있다. 상기 우선순위는 현재 블록의 모드 예측 후보군에 포함될 가능성뿐만 아니라 상기 후보군 구성에서도 더 높은 우선 순위 또는 인덱스(즉, 이진화 과정에서 적은 비트를 할당 받을 확률이 높음을 의미)를 할당 받을 가능성을 의미할 수 있다.As another example, when the prediction mode of a block adjacent to the current block is a directional prediction mode, a prediction mode adjacent to the prediction direction of the current block (in terms of gradient information or angle information of the direction of the mode) is included in the mode prediction candidate group of the current block. can do. In addition, preset modes (planar, DC, vertical, horizontal, etc.) may be preferentially included according to the configuration or combination of prediction modes of neighboring blocks. Also, among the prediction modes of neighboring blocks, a prediction mode with a high frequency of occurrence may be preferentially included. The priority may mean not only the possibility of being included in the mode prediction candidate group of the current block, but also the possibility of being assigned a higher priority or index (that is, a higher probability of being assigned fewer bits in the binarization process) in the candidate group configuration. have.

다른 예로, 현재 블록의 모드 예측 후보군의 최대치가 k개이고, 왼쪽 블록은 현재 블록의 세로 길이보다 길이가 작은 m개의 블록으로 구성되며, 위쪽 블록은 현재 블록의 가로 길이보다 길이가 작은 n개의 블록으로 구성되면, 이웃 블록들의 분할 블록 합(m+n)이 k보다 클 때 기설정된 순서(왼쪽에서 오른쪽, 위쪽에서 아래쪽)에 따라 후보군을 채울 수 있고, 이웃 블록 분할들의 분할 블록 합(m+n)이 후보군의 최대치(k)보다 클 경우, 상기 이웃 블록(왼쪽 블록, 위쪽 블록)의 예측 모드에 상기 이웃 블록 위치 외 다른 이웃 블록(예를 들어, 왼쪽 아래, 왼쪽 위, 오른쪽 위 등)과 같은 블록의 예측 모드도 현재 블록의 모드 예측 후보군에 포함될 수 있다. 위의 예들은 전술한 경우에만 특정하는 것은 아니며 서로의 조건이 뒤바뀌는 경우도 포함할 수 있고, 다른 경우의 예로 변형 또한 가능하다.As another example, the maximum number of mode prediction candidates for the current block is k, the left block is composed of m blocks whose length is smaller than the vertical length of the current block, and the upper block is composed of n blocks whose length is smaller than the horizontal length of the current block. Once configured, when the sum of split blocks (m+n) of neighboring blocks is greater than k, candidates can be filled in a predetermined order (from left to right, top to bottom), and the sum of split blocks (m+n) of neighboring block splits ) is greater than the maximum value (k) of the candidate group, the prediction mode of the neighboring block (left block, upper block) includes other neighboring blocks (eg, lower left, upper left, upper right, etc.) A prediction mode of the same block may also be included in the mode prediction candidate group of the current block. The above examples are not specific to the above-described case, and may include cases in which mutual conditions are reversed, and modifications are also possible as examples of other cases.

이와 같이, 현재 블록의 모드의 예측을 위한 후보 블록은 특정 블록 위치에만 한정하지 않으며 왼쪽, 왼쪽 위, 왼쪽 아래, 위쪽, 오른쪽 위에 위치하는 블록 중 최소 하나 이상의 블록으로부터 예측 모드 정보를 활용할 수 있으며, 상기 예에서와 같이 여러 요인들을 고려하여 현재 블록의 예측 모드 후보군을 구성할 수 있다. In this way, the candidate block for prediction of the mode of the current block is not limited to a specific block location, and prediction mode information can be used from at least one block among blocks located on the left side, upper left side, lower left side, upper side, and upper right side, As in the above example, the prediction mode candidate group of the current block may be configured by considering various factors.

예측 모드 부호화부 현재 블록의 모드와 동일할 확률이 높은 모드(MPM) 후보군(본 예에서 후보군 1로 지칭함)과 그렇지 않은 모드 후보군(본 예에서 후보군 2로 지칭함)으로 분류할 수 있으며, 현재 블록의 예측 모드가 상기 후보군들 중 어느 후보군에 속하는지에 따라 예측 모드 부호화 과정이 달라질 수 있다. 전체 예측 모드는 후보군 1의 예측 모드와 후보군 2의 예측 모드의 합으로 구성될 수 있으며, 후보군 1의 예측 모드 개수와 후보군 2의 예측 모드 개수는 전체 예측 모드의 개수, 슬라이스 타입, 블록의 크기, 블록의 형태 등의 요인 중 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수 있다. 상기 후보군에 따라 동일한 이진화를 적용하거나 다른 이진화를 적용할 수 있다. 예를 들어, 후보군 1에는 고정 길이 이진화를, 후보군 2에는 단삭 절단형 이진화를 적용할 수도 있다. 위의 설명에서 후보군의 개수를 2개로 예를 들었지만, 현재 블록의 모드와 동일할 확률이 높은 모드 제 1 후보군, 현재 블록의 모드와 동일할 확률이 높은 모드 제 2 후보군, 그렇지 않은 모드 후보군 등과 같이 확장이 가능하며, 이의 변형 또한 가능하다.The prediction mode encoder can classify a mode (MPM) candidate group with a high probability of being the same as the mode of the current block (referred to as candidate group 1 in this example) and a mode candidate group that is not (referred to as candidate group 2 in this example), and the current block A prediction mode encoding process may vary depending on which of the candidate groups the prediction mode of . The total prediction mode may be composed of the sum of the prediction modes of candidate group 1 and the prediction modes of candidate group 2, and the number of prediction modes of candidate group 1 and the number of prediction modes of candidate group 2 are the total number of prediction modes, slice type, block size, It may be determined according to one or more factors or a combination thereof among factors such as the shape of the block. Depending on the candidate group, the same binarization or different binarization may be applied. For example, fixed-length binarization may be applied to candidate group 1 and truncation-type binarization may be applied to candidate group 2. Although the number of candidate groups is exemplified as two in the above description, the first mode candidate group having a high probability of being the same as the mode of the current block, the second mode candidate group having a high probability of being identical to the mode of the current block, and the mode candidate group having a high probability of being identical to the mode of the current block It is possible to expand, and its modification is also possible.

후처리 필터부에 의해 실행되는 후처리 필터링 단계는, 현재 블록과 이웃 블록의 경계에 인접한 참조 화소와 인접한 현재 블록 내의 화소 간에 상관성이 높은 특성을 고려하여 이전 과정에서 생성한 예측 블록 중 일부 예측 화소는 경계에 인접한 하나 이상의 참조 화소와 하나 이상의 상기 예측 화소를 필터링하여 생성된 값으로 대체할 수 있고, 상기 블록의 경계에 인접한 참조 화소들간의 특성을 수치화한 값(예를 들어, 화소값의 차이, 기울기 정보 등)을 필터링 과정에 적용하여 생성된 값으로 상기 예측 화소를 대체할 수 있고, 위의 방법 외에 비슷한 목적(참조 화소를 통해 예측 블록의 일부 예측 화소를 보정)을 갖는 다른 방법 등이 추가될 수 있다. 후처리 필터부에 있어서, 필터의 종류 및 필터링 적용 유무는 묵시적 또는 명시적으로 결정될 수 있으며, 후처리 필터부에 사용되는 참조 화소와 현재 화소의 위치 및 개수, 그리고 적용되는 예측 모드의 종류 등은 부호화기 또는 복호화기에서 설정 가능하고, 관련 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송 가능하다.In the post-processing filtering step performed by the post-processing filter unit, some predicted pixels of the prediction block generated in the previous process are considered in consideration of characteristics of high correlation between reference pixels adjacent to the boundary between the current block and neighboring blocks and pixels in the adjacent current block. can be replaced with a value generated by filtering one or more reference pixels adjacent to the boundary and one or more predicted pixels, and a value obtained by digitizing characteristics between reference pixels adjacent to the boundary of the block (eg, pixel value difference , gradient information, etc.) can be replaced with a value generated by applying a filtering process, and in addition to the above method, other methods having a similar purpose (correction of some predicted pixels of a prediction block through reference pixels) can be used. can be added In the post-processing filter unit, the type of filter and whether filtering is applied may be implicitly or explicitly determined, and the location and number of reference pixels and current pixels used in the post-processing filter unit, and the type of prediction mode to be applied may be determined. It can be set in an encoder or a decoder, and related information can be transmitted in units such as sequences, pictures, and slices.

또한, 후처리 필터링 단계에서는 상기 블록 경계 필터링(boundary filtering)과 같이 예측 블록 생성 후 추가적인 후처리 과정을 진행할 수 있다. 또한, 잔차 신호 획득 후 변환, 양자화 과정 및 그 역과정을 거쳐서 얻게된 잔차 신호와 예측 신호를 합하여 복원된 현재 블록을 위의 경계 필터링과 비슷하게 인접한 참조 블록의 화소의 특성을 고려하여 후처리 필터링을 수행할 수도 있다.In addition, in the post-processing filtering step, an additional post-processing process may be performed after generating a prediction block, such as the block boundary filtering. In addition, similar to the boundary filtering above, post-processing is performed on the reconstructed current block by combining the residual signal and the prediction signal obtained through transformation, quantization, and the reverse process after obtaining the residual signal, considering the characteristics of the pixels of the adjacent reference block. can also be done

최종적으로 전술한 과정을 통해 예측 블록을 선택 또는 획득하게 되며, 이 과정에서 나오는 정보는 예측 모드 관련 정보를 포함할 수 있고, 예측 블록의 획득 후 잔차 신호의 부호화를 위해 변환부(210)에 전달할 수 있다.Finally, a prediction block is selected or obtained through the above-described process, and information generated in this process may include information related to a prediction mode, and is transmitted to the transform unit 210 for encoding a residual signal after obtaining the prediction block. can

도 10은 본 발명의 일실시예에 따른 영상 부호화 방법에서 P 슬라이스나 B 슬라이스에서의 예측 원리를 설명하기 위한 예시도이다.10 is an exemplary diagram for explaining a prediction principle in a P slice or a B slice in an image encoding method according to an embodiment of the present invention.

도 10을 참조하면, 본 실시예에 따른 영상 부호화 방법은, 모션 예측(motion estimation module) 및 보간(interpolation) 단계들을 포함할 수 있다. 모션 예측 단계에서 생성되는 모션 벡터, 참조 픽쳐 인덱스, 참조 방향에 대한 정보는 보간 단계로 전달될 수 있다. 모션 예측 단계와 보간 단계에서는 복원된 픽쳐 버퍼(decoded picture buffer, DPB)에 저장되는 값을 이용할 수 있다.Referring to FIG. 10 , the video encoding method according to the present embodiment may include motion estimation module and interpolation steps. Information about a motion vector, a reference picture index, and a reference direction generated in the motion prediction step may be transferred to the interpolation step. In the motion prediction step and the interpolation step, values stored in a decoded picture buffer (DPB) may be used.

즉, 영상 부호화 장치는, 이전의 부호화된 픽쳐들에서 현재 블록과 유사한 블록을 찾기 위해 모션 예측(motion estimation)을 실행할 수 있다. 또한, 영상 부호화 장치는 소수 단위의 정밀도보다 정밀한 예측을 위해 참조 픽쳐의 내삽(interpolation)을 실행할 수 있다. 최종적으로 영상 부호화 장치는 예측 변수(predictor)를 통해 예측 블록을 획득하게 되며, 이 과정에서 나오는 정보는 움직임 벡터(motion vector), 참조 픽쳐 인덱스(reference picture index 또는 reference index), 참조 방향(reference direction) 등이 있으며, 이후 잔차 신호 부호화를 진행할 수 있다.That is, the video encoding apparatus may perform motion estimation to find a block similar to the current block in previously encoded pictures. In addition, the image encoding apparatus may perform interpolation of reference pictures for prediction more precise than fractional precision. Finally, the video encoding apparatus obtains a prediction block through a predictor, and information generated in this process includes a motion vector, a reference picture index (reference picture index), and a reference direction. ), etc., and then coding of the residual signal can be performed.

본 실시예에서는 P 슬라이스나 B 슬라이스에서도 화면 내 예측을 수행하기 때문에 화면 간 예측과 화면 내 예측을 지원하는 도 9와 같은 조합 방식의 구현이 가능하다.In this embodiment, since intra prediction is performed even in P slices or B slices, it is possible to implement a combination method as shown in FIG. 9 supporting inter prediction and intra prediction.

도 11은 예측 블록을 획득하는 과정을 설명하기 위한 예시도이다.11 is an exemplary diagram for explaining a process of obtaining a prediction block.

도 11을 참조하면, 본 실시예에 따른 영상 부호화 방법은, 참조 화소 채움(reference sample padding), 참조 화소 필터링(reference sample filtering), 화면 내 예측(intra prediction), 경계 필터링(boundary filtering), 모션 예측(motion estimation), 및 보간(interpolation)의 단계들을 포함할 수 있다.Referring to FIG. 11 , the image encoding method according to the present embodiment includes reference sample padding, reference sample filtering, intra prediction, boundary filtering, motion It may include steps of motion estimation and interpolation.

영상 부호화 장치는, 현재 픽쳐에서 블록 매칭을 지원하는 경우, I 슬라이스에서의 예측 방식은 도 9에 도시한 구성이 아닌 도 11에 도시한 구성으로 구현 가능하다. 즉, 영상 부호화 장치는 I 슬라이스에서 예측 모드뿐만 아니라 P 슬라이스나 B 슬라이스에서만 발생하는 움직임 벡터, 참조 픽쳐 인덱스, 참조 방향 등의 정보를 예측 블록 생성에 이용할 수 있다. 다만, 참조 픽쳐가 현재라는 특성으로 인해 부분 생략 가능한 정보가 존재할 수 있다. 일례로, 참조 픽쳐가 현재 픽쳐인 경우 참조 픽쳐 인덱스, 참조 방향은 생략 가능하다.When the image encoding apparatus supports block matching in the current picture, the prediction method in I slices can be implemented with the configuration shown in FIG. 11 instead of the configuration shown in FIG. 9 . That is, the video encoding apparatus may use information such as a motion vector, a reference picture index, a reference direction, and the like generated only in a P slice or a B slice as well as a prediction mode in an I slice to generate a prediction block. However, information that can be partially omitted may exist due to the characteristic that the reference picture is current. For example, when the reference picture is the current picture, the reference picture index and reference direction can be omitted.

또한, 영상 부호화 장치는, 내삽(interpolation)을 적용하는 경우, 영상의 특성상 예컨대 컴퓨터 그래픽 등의 인공적인 영상의 특성상 소수 단위까지의 블록 매칭이 필요하지 않을 수 있기 때문에 이에 대한 수행 여부도 부호화기에서 설정할 수 있고, 이에 대해서 시퀀스, 픽쳐, 슬라이스 등의 단위 설정도 가능하다.In addition, when interpolation is applied, the video encoding apparatus may not require block matching up to decimal units due to the characteristics of artificial images such as computer graphics, so whether or not to perform this may also be set by the encoder. It is also possible to set units such as sequences, pictures, and slices.

예를 들어, 영상 부호화 장치는, 부호화기의 설정에 따라 화면 간 예측에 사용되는 참조 픽쳐들의 내삽을 수행하지 않을 수 있고, 현재 픽쳐에서 블록 매칭을 하는 경우에만 내삽을 수행하지 않는 등의 다양한 설정을 할 수 있다. 즉, 본 실시예의 영상 부호화 장치는 참조 픽쳐들의 내삽 수행 여부에 대해 설정할 수 있다. 이 때, 참조 픽쳐 리스트를 구성하는 모든 참조 픽쳐 또는 일부 참조 픽쳐들에 내삽 수행 여부를 결정할 수 있다. 일례로, 영상 부호화 장치는, 어떤 현재 블록에서는 참조 블록이 존재하는 영상의 특성이 인공적인 영상이라 소수 단위로 블록 매칭을 할 필요가 없을 때에는 내삽을 수행하지 않고, 자연 영상이라 소수 단위로 블록 매칭을 할 필요가 있을 때는 내삽을 수행하도록 동작할 수 있다.For example, the video encoding apparatus may not perform interpolation of reference pictures used for inter-prediction according to the setting of the encoder, and may not perform interpolation only when block matching is performed in the current picture. can do. That is, the video encoding apparatus of the present embodiment may set whether to perform interpolation of reference pictures. In this case, it may be determined whether to perform interpolation on all or some reference pictures constituting the reference picture list. For example, the image encoding apparatus does not perform interpolation when it is not necessary to perform block matching in decimal units because the characteristics of an image in which a reference block exists in a certain current block are artificial images, and block matching in decimal units because it is a natural image. When necessary, it can operate to perform interpolation.

또한, 영상 부호화 장치는, 블록 단위로 내삽을 수행한 참조 픽쳐에서 블록 매칭 적용 여부에 대한 설정이 가능하다. 예를 들어, 자연 영상과 인공 영상이 혼합되어 있을 경우 참조 픽쳐에 내삽을 수행하되 인공적인 영상의 부분을 탐색하여 최적의 움직임 벡터를 얻을 수 있는 경우에는 일정 단위(여기에서 정수 단위라고 가정)로 움직임 벡터를 표현할 수 있으며, 또한 선택적으로 자연 영상의 부분을 탐색하여 최적의 움직임 벡터를 얻을 수 있는 경우에는 다른 일정 단위(여기에서는 1/4 단위라고 가정)로 움직임 벡터를 표현할 수 있다.In addition, the video encoding apparatus may set whether to apply block matching to a reference picture in which interpolation is performed block by block. For example, when a natural image and an artificial image are mixed, interpolation is performed on a reference picture, but when an optimal motion vector can be obtained by searching a part of the artificial image, a constant unit (assuming an integer unit here) is performed. A motion vector can be expressed, and if an optimal motion vector can be obtained by selectively searching a part of a natural video, the motion vector can be expressed in another constant unit (herein, 1/4 unit is assumed).

도 12는 본 발명의 일실시예에 따른 영상 부호화 방법의 주요 과정을 코딩 단위(coding unit)에서의 신택스로 설명하기 위한 예시도이다.12 is an exemplary diagram for explaining a main process of an image encoding method according to an embodiment of the present invention with syntax in a coding unit.

도 12를 참조하면, curr_pic_BM_enabled_flag는 현재 픽쳐에서 블록 매칭을 허용하는 플래그를 의미하고 시퀀스, 픽쳐 단위에서 정의 및 전송될 수 있으며, 이 때 현재 픽쳐에서 블록 매칭을 수행하여 예측 블록 생성하는 과정은 화면 간 예측을 통해 동작하는 경우를 의미할 수 있다. 그리고 잔차 신호를 부호화하지 않는 화면 간 기술인 cu_skip_flag는, I 슬라이스를 제외한 P 슬라이스나 B 슬라이스에서만 지원되는 플래그라고 가정할 수 있다. 그 경우, curr_pic_BM_enabled_flag가 온(on)이 되는 경우에 I 슬라이스에서도 블록 매칭(block maching, BM)을 화면 간 예측 모드에서 지원할 수가 있다.Referring to FIG. 12, curr_pic_BM_enabled_flag means a flag that allows block matching in the current picture, and can be defined and transmitted in units of sequences and pictures. In this case, the process of generating a prediction block by performing block matching in the current picture is This may mean a case of operating through prediction. In addition, it can be assumed that cu_skip_flag, which is an inter-screen technology that does not encode a residual signal, is a flag supported only in P slices or B slices excluding I slices. In this case, when curr_pic_BM_enabled_flag is on, block matching (BM) can be supported in the inter-prediction mode even in the I slice.

즉, 본 실시예의 영상 부호화 장치는 현재 픽쳐에 블록 매칭을 통해 예측 블록을 생성하는 경우에 스킵(skip)을 지원할 수 있으며, 블록 매칭 외의 화면 내 기술의 경우에도 스킵을 지원할 수 있다. 그리고 조건에 따라 I 슬라이스에서 스킵을 지원하지 않을 수도 있다. 이러한 스킵 여부는 부호화기 설정에 따라 결정될 수 있다.That is, the video encoding apparatus of the present embodiment can support skip when a prediction block is generated through block matching in the current picture, and can support skip even in the case of an in-screen description other than block matching. In addition, skip may not be supported in I slices according to conditions. Whether or not to skip this may be determined according to encoder settings.

일례로, I 슬라이스에서 스킵을 지원할 경우, 특정 플래그인 if(cu_skip_flag)를 통해 예측 단위인 prediction_unit()으로 연결하여 잔차신호를 부호화하지 않고 블록 매칭을 통해 예측 블록을 복원 블록으로 바로 복원할 수 있다. 또한, 영상 부호화 장치는 현재 픽쳐에서 블록 매칭을 통해 예측 블록을 사용하는 방법을 화면 간 예측 기술로 분류하고, 그러한 구분을 특정 플래그인 pred_mode_flag를 통해 처리할 수 있다.For example, when skip is supported in I slice, a prediction block can be directly restored as a reconstructed block through block matching without encoding a residual signal by connecting to prediction_unit(), which is a prediction unit, through a specific flag if (cu_skip_flag). . In addition, the video encoding apparatus may classify a method of using a prediction block through block matching in a current picture as an inter-prediction technique, and process such classification through pred_mode_flag, which is a specific flag.

즉, 영상 부호화 장치는, pred_mode_flag가 0이면 예측 모드를 화면 간 예측 모드(MODE_INTER)로 설정하고, 1이면 화면 내 예측 모드(MODE_INTRA)로 설정할 수 있다. 이것은 기존과 유사한 화면 내 기술이지만 기존의 구조와의 구분을 위해 I 슬라이스에서 화면 간 기술 또는 화면 내 기술로 분류될 수 있다. 즉, 본 실시예의 영상 부호화 장치는, I 슬라이스에서 시간적인 상관성을 이용하지 않지만 시간적인 상관성의 구조를 사용할 수 있다. part_mode는 부호화 단위에서 분할되는 블록의 크기 및 형태에 대한 정보를 의미한다.That is, the video encoding device may set the prediction mode to inter prediction mode (MODE_INTER) if pred_mode_flag is 0, and to intra prediction mode (MODE_INTRA) if it is 1. This is a similar intra-screen technique to the existing one, but it can be classified as an inter-screen technique or an intra-screen technique in I slices to distinguish it from the existing structure. That is, the video encoding apparatus of the present embodiment does not use temporal correlation in I slices, but may use a structure of temporal correlation. part_mode means information about the size and shape of a block divided in a coding unit.

도 13은 현재 픽쳐에서 블록매칭을 통해 예측 블록을 생성할 경우, 화면 간 예측에서와 같이 대칭형(symmetric type) 분할 또는 비대칭형(asymmetric type) 분할을 지원하는 예를 설명하기 위한 예시도이다.13 is an exemplary diagram for explaining an example of supporting symmetric type splitting or asymmetric type splitting as in inter prediction when a prediction block is generated through block matching in a current picture.

도 13을 참조하면, 본 실시예에 따른 영상 부호화 방법은, 현재 픽쳐에서 블록 매칭을 통해 예측 블록을 생성하는 경우, 화면 간 예측에서와 같이 2N×2N, 2N×N, N×2N와 같은 대칭형(symmetric) 분할을 지원하거나, nL×2N, nR×2N, 2N×nU, 2N×nD와 같은 비대칭형(asymmetric) 분할을 지원할 수 있다. 이는 블록 분할부의 분할 방식에 따라 다양한 블록 크기 및 형태가 결정될 수 있다.Referring to FIG. 13, in the video encoding method according to the present embodiment, when a prediction block is generated through block matching in a current picture, a symmetric type such as 2N×2N, 2N×N, and N×2N is used as in inter prediction. (symmetric) partitioning may be supported, or asymmetric partitioning such as nL×2N, nR×2N, 2N×nU, and 2N×nD may be supported. Various block sizes and shapes may be determined according to the division method of the block divider.

도 14는 화면 간 예측(Inter)에서 2N×2N, N×N을 지원할 수 있음을 설명하기 위한 예시도이다.14 is an exemplary diagram for explaining that 2N×2N and N×N can be supported in inter prediction (Inter).

도 14를 참조하면, 본 실시예에 따른 영상 부호화 방법은, 기존의 화면 내 예측에 사용하는 예측 블록 형태와 같이 2N×2N 및 N×N을 지원할 수 있다. 이는 블록 분할부에서 쿼드트리 분할 방식 또는 미리 정의된 소정의 블록 후보군에 따른 분할 방식 등을 통해 정사각 형태를 지원한 예이며, 화면 내 예측에서도 바이너리 트리 분할 방식 또는 미리 정의돈 소정의 블록 후보군에 직사각 형태를 추가하여 다른 블록 형태 또한 지원할 수 있으며, 이에 대한 설정은 부호화기에서 설정이 가능하다. 또한, 화면 내 예측 중 현재 픽쳐에 블록 매칭을 할 경우에만 스킵을 적용할 것인지, 기존의 화면 내 예측에도 적용할 것인지, 그 외의 새로운 화면 내 예측에 적용할 것인지 또한 부호화기에서 설정 가능하다. 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송될 수 있다.Referring to FIG. 14 , the video encoding method according to the present embodiment can support 2N×2N and N×N like prediction block types used for existing intra-prediction. This is an example in which the block division unit supports a square shape through a quad-tree division method or a division method according to a predefined block candidate group, and a binary tree division method or a rectangular shape in a predefined block candidate group in intra-prediction. Other block types can be supported by adding a shape, and the setting for this can be set in the encoder. Also, during intra prediction, the encoder can set whether to apply skip only when block matching is performed with the current picture, to apply to existing intra prediction, or to other new intra prediction. Information about this may be transmitted in units of sequences, pictures, slices, and the like.

감산부(205)는 부호화할 현재 블록의 화소값으로부터 예측부(200)로부터 생성되는 예측 블록의 화소값들을 감산하여 화소 차이값을 도출함으로써, 잔차 블록을 생성할 수 있다.The subtraction unit 205 may generate a residual block by deriving a pixel difference value by subtracting pixel values of the prediction block generated by the prediction unit 200 from the pixel values of the current block to be encoded.

변환부(210)는 감산부(205)에서 현재 블록과 화면 내 예측 또는 화면 간 예측을 통해 생성된 예측 블록과의 차분치인 잔차 블록을 전달받아 주파수 영역으로 변환한다. 변환 과정을 통해 잔차 블록의 각 화소는 변환 블록의 변환 계수에 대응된다. 변환 블록의 크기 및 형태는 부호화 단위와 같거나 작은 크기를 가질 수 있다. 또한, 변환 블록의 크기 및 형태는 예측 단위와 같을 수도 있고 작을 수도 있다. 영상 부호화 장치는 여러 예측 단위를 묶어서 변환 처리를 수행할 수 있다.The transform unit 210 receives a residual block, which is a difference value between a current block and a predicted block generated through intra-prediction or inter-prediction from the subtractor 205, and converts the residual block into a frequency domain. Through the transform process, each pixel of the residual block corresponds to the transform coefficient of the transform block. The size and shape of the transform block may have a size equal to or smaller than that of the coding unit. Also, the size and shape of the transform block may be the same as or smaller than the prediction unit. An image encoding device may perform transformation processing by bundling several prediction units.

변환 블록의 크기 또는 형태는 블록 분할부를 통해 결정될 수 있으며, 블록 분할에 따라 정사각 형태 또는 직사각 형태의 변환을 지원할 수 있다. 부호화기 또는 복호화기에서 지원되는 변환 관련 설정 (지원되는 변환 블록의 크기, 형태 등)에 따라 상기 블록 분할 동작에 영향을 줄 수 있다. The size or shape of the transform block may be determined by the block divider, and a square or rectangular transform may be supported according to the block divider. The block division operation may be influenced according to transform-related settings supported by an encoder or a decoder (size, shape, etc. of a supported transform block).

상기 변환 블록의 크기 및 형태의 후보별 부호화 비용에 따라 각 변환 블록의 크기 및 형태가 결정되고, 결정된 각 변환 블록의 영상 데이터 및 결정된 각 변환 블록의 크기 및 형태 등의 분할 정보들을 부호화할 수 있다.The size and shape of each transform block is determined according to the encoding cost for each candidate of the size and shape of the transform block, and video data of each determined transform block and partition information such as the determined size and shape of each transform block can be encoded. .

변환은 1차원 변환 매트릭스에 의해 변환될 수 있다. (DCT, DST 등) 수평, 수직 단위로 각 변환 매트릭스가 적응적으로 사용될 수 있다. 적응적 사용의 예로는 블록의 크기, 블록의 형태, 블록의 종류(휘도 및 색차), 부호화 모드, 예측 모드 정보, 양자화 파라미터, 이웃 블록의 부호화 정보 등의 여러 요인으로 결정될 수 있다.The transform can be transformed by a one-dimensional transform matrix. (DCT, DST, etc.) Each transformation matrix can be used adaptively in horizontal and vertical units. Examples of adaptive use may be determined by various factors such as block size, block shape, block type (luminance and color difference), encoding mode, prediction mode information, quantization parameter, and encoding information of neighboring blocks.

예를 들어, 화면내 예측의 경우, 예측 모드가 수평일 경우에는 수직 방향으로는 DCT 기반의 변환 매트릭스가, 수평 방향으로는 DST 기반의 변환 매트릭스가 사용될 수도 있다. 수직일 경우에는 수평 방향으로는 DCT 기반의 변환 매트릭스가, 수직 방향으로는 DST 기반의 변환 매트릭스가 사용될 수 있다. 변환 매트릭스는 위의 설명에서 나온 것에 한정되지 않는다. 이에 대한 정보는 묵시적 또는 명시적인 방법을 사용하여 결정될 수 있으며, 블록의 크기, 블록의 형태, 부호화 모드, 예측 모드, 양자화 파라미터, 이웃 블록의 부호화 정보 등에 요인 중 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수 있으며, 상기 관련 정보는 시퀀스, 픽쳐, 슬라이스, 블록 등의 단위로 전송할 수 있다.For example, in the case of intra prediction, when the prediction mode is horizontal, a DCT-based transformation matrix may be used in the vertical direction and a DST-based transformation matrix may be used in the horizontal direction. In the vertical case, a DCT-based transformation matrix may be used in the horizontal direction and a DST-based transformation matrix may be used in the vertical direction. Transformation matrices are not limited to those from the above description. This information may be determined using an implicit or explicit method, and may be determined according to one or more factors or a combination of factors such as block size, block shape, encoding mode, prediction mode, quantization parameter, and encoding information of a neighboring block. may be determined, and the related information may be transmitted in units of sequences, pictures, slices, blocks, and the like.

여기서, 명시적인 방법을 사용을 할 경우를 고려하면, 수평 및 수직 방향에 대한 2개 이상의 변환 매트릭스를 후보군으로 두고 있을 경우, 각 방향마다 어떤 변환 매트릭스를 사용했는지에 대한 정보를 각각 보낼 수도 있고, 또는 수평, 수직 방향에 대해 각각 어떤 변환 매트릭스를 사용했는지에 대한 각 하나의 쌍으로 묶어 2개 이상의 쌍을 후보군으로 두어 어떤 변환 매트릭스를 수평, 수직 방향에서 사용했는지에 대한 정보를 전송할 수도 있다.Here, considering the case of using the explicit method, if two or more transformation matrices for the horizontal and vertical directions are set as candidates, information on which transformation matrix was used for each direction may be sent, respectively, Alternatively, information on which transformation matrices are used in the horizontal and vertical directions may be transmitted by bundling them into one pair for which transformation matrices are used in the horizontal and vertical directions, and setting two or more pairs as candidates.

또한, 영상의 특성을 고려하여 부분적인 변환 또는 전체적인 변환을 생략할 수 있다. 예를 들면, 수평 또는 수직 성분 둘 중 하나 또는 둘다 생략할 수 있다. 화면내 예측 또는 화면간 예측이 잘 이뤄지지 않아 현재 블록과 예측 블록의 차이가 크게 발생할 경우(즉, 잔차 성분이 클 때)에 이를 변환할 시 그에 따른 부호화 손실이 커질 수 있기 때문이다. 이는 부호화 모드, 예측 모드 정보, 블록의 크기, 블록의 형태, 블록의 종류(휘도 및 색차), 양자화 파라미터, 이웃 블록의 부호화 정보 등의 요인 중 최소 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수 있다. 위의 조건에 따라 묵시적 또는 명시적인 방법을 사용하여 이를 표현할 수 있고, 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송이 가능하다.In addition, partial transformation or overall transformation may be omitted in consideration of characteristics of an image. For example, one or both of the horizontal or vertical components may be omitted. This is because when intra-prediction or inter-prediction is not performed well and a large difference occurs between the current block and the predicted block (ie, when the residual component is large), the resulting encoding loss may increase when converting it. This may be determined according to at least one or a combination of factors such as encoding mode, prediction mode information, block size, block shape, block type (luminance and color difference), quantization parameter, and encoding information of neighboring blocks. . Depending on the above conditions, it can be expressed using an implicit or explicit method, and information about this can be transmitted in units such as sequences, pictures, and slices.

양자화부(215)는 변환부(210)에서 변환된 잔차 성분의 양자화를 수행한다. 양자화 파라미터는 블록 단위로 결정이 되며, 양자화 파라미터는 시퀀스, 픽쳐, 슬라이스, 블록 등의 단위로 설정될 수 있다.The quantization unit 215 performs quantization of the residual component transformed by the transform unit 210 . The quantization parameter is determined in units of blocks, and the quantization parameters may be set in units of sequences, pictures, slices, and blocks.

일례로, 양자화부(215)는 현재 블록의 왼쪽, 왼쪽 위, 위쪽, 오른쪽 위, 왼쪽 아래 등의 이웃 블록으로부터 유도된 1개 또는 2개 이상의 양자화 파라미터를 사용하여 현재 양자화 파라미터를 예측할 수 있다.For example, the quantization unit 215 may predict a current quantization parameter using one or more quantization parameters derived from neighboring blocks such as left, upper left, upper, upper right, and lower left of the current block.

또한, 양자화부(215)는 이웃 블록으로부터 예측한 양자화 파라미터가 존재하지 않는 경우 즉, 블록이 픽쳐, 슬라이스 등의 경계에 있는 경우, 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송된 기본 파라미터와의 차분치를 출력 혹은 전송할 수 있다. 이웃 블록으로부터 예측한 양자화 파라미터가 존재하는 경우, 해당 블록의 양자화 파라미터를 사용하여 차분치를 전송할 수도 있다.In addition, the quantization unit 215 performs a difference between a basic parameter and a basic parameter transmitted in units of sequences, pictures, slices, etc., when a quantization parameter predicted from a neighboring block does not exist, that is, when a block is at a boundary between a picture and a slice. values can be output or transmitted. If there is a quantization parameter predicted from a neighboring block, a difference value may be transmitted using the quantization parameter of the corresponding block.

양자화 파라미터를 유도할 블록의 우선순위는 미리 설정할 수도 있고, 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송할 수 있다. 잔차 블록을 데드존 균일 경계 양자화(DZUTQ: Dead Zone Uniform Threshold Quantization), 양자화 가중치 매트릭스(Quantization weighted matrix) 또는 이를 개량한 기법을 통해 양자화할 수 있다. 이는 1개 이상의 양자화 기법을 후보로 둘 수 있으며 부호화 모드, 예측 모드 정보 등에 의해 결정될 수 있다.The priority of blocks from which quantization parameters are to be derived may be set in advance, or may be transmitted in units of sequences, pictures, slices, and the like. The residual block may be quantized through dead zone uniform threshold quantization (DZUTQ), a quantization weighted matrix, or an improved technique thereof. This can set one or more quantization techniques as candidates and can be determined by encoding mode, prediction mode information, and the like.

예를 들어, 양자화부(215)는 양자화 가중치 매트릭스를 화면 간 부호화, 화면 내 부호화 단위 등에 적용하기 위해 설정해 둘 수 있고, 또한 화면 내 예측 모드에 따라 다른 가중치 매트릭스를 둘 수도 있다. 양자화 가중치 매트릭스는 M×N의 크기로 블록의 크기가 양자화 블록 크기와 같다고 가정할 때, 각 주파수 성분의 위치마다 양자화 계수를 달리하여 구성할 수 있다. 그리고 양자화부(215)는 기존의 여러 양자화 방법 중 택일할 수도 있고, 부호화기 또는 복호화기의 동일한 설정하에 사용될 수도 있다. 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송 가능하다.For example, the quantization unit 215 may set a quantization weight matrix to be applied to inter-screen coding, intra-coding unit, etc., and may also set different weight matrices according to intra-prediction modes. The quantization weight matrix has a size of M×N, and can be constructed by changing quantization coefficients for each position of each frequency component when it is assumed that the size of a block is the same as the size of a quantization block. The quantization unit 215 may select one of several existing quantization methods or may be used under the same settings of an encoder or a decoder. This information can be transmitted in units such as sequences, pictures, and slices.

한편, 도 2, 3에 도시한 역양자화부(220,315) 및 역변환부(225,320)는 위의 변환부(210) 및 양자화부(215)에서의 과정을 역으로 수행하여 구현될 수 있다. 즉, 역양자화부(220)는 양자화부(215)에서 생성된 양자화된 변환 계수를 역양자화할 수 있고, 역변환부(225)는 역양자화된 변환 계수를 역변환하여 복원된 잔차 블록을 생성할 수 있다. Meanwhile, the inverse quantization units 220 and 315 and the inverse transform units 225 and 320 shown in FIGS. 2 and 3 may be implemented by performing the above processes in the transform unit 210 and the quantization unit 215 in reverse. That is, the inverse quantization unit 220 may inversely quantize the quantized transform coefficients generated by the quantization unit 215, and the inverse transform unit 225 may generate a reconstructed residual block by inversely transforming the inverse quantized transform coefficients. have.

도 2, 3에 도시한 가산부(230, 324)는 상기 복원된 잔차 블록의 화소값에 예측부로부터 생성되는 예측 블록의 화소값을 가산하여 복원 블록이 생성될 수 있다. 복원 블록은 부호화 및 복호화 픽쳐 버퍼(240, 335)에 저장되어 예측부 및 필터부에 제공될 수 있다.The adders 230 and 324 shown in FIGS. 2 and 3 add pixel values of the prediction block generated from the predictor to pixel values of the reconstructed residual block to generate a reconstructed block. The reconstructed block may be stored in the encoding and decoding picture buffers 240 and 335 and provided to the prediction unit and the filter unit.

필터부는 복원 블록에 디블록킹 필터(Deblocking Filter), 적응적 샘플 오프셋(Sample Adaptive Offset, SAO), 적응적 루프 필터(Adaptive Loop Filter, ALF) 등과 같은 인루프 필터를 적용할 수 있다. 디블록킹 필터는 부호화 및 복호화 과정에서 발생하는 블록 경계 사이의 왜곡을 제거하기 위해, 복원 블록을 필터링할 수 있다. SAO는 잔차 블록에 대하여, 화소 단위로 원본 영상과 복원 영상과의 차이를 오프셋으로 복원해주는 필터 과정이다. ALF는 예측 블록과 복원 블록 사이의 차이를 최소화하기 위해 필터링을 수행할 수 있다. ALF는 디블록킹 필터를 통해 복원된 블록과 현재 블록의 비교값을 기초로 필터링을 수행할 수 있다.The filter unit may apply an in-loop filter such as a deblocking filter, a sample adaptive offset (SAO), or an adaptive loop filter (ALF) to the reconstructed block. The deblocking filter may filter the reconstructed block to remove distortion between block boundaries generated during encoding and decoding processes. SAO is a filter process for restoring a difference between an original image and a reconstructed image as an offset on a pixel-by-pixel basis for a residual block. ALF may perform filtering to minimize the difference between a predicted block and a reconstructed block. ALF may perform filtering based on a comparison value between a block reconstructed through a deblocking filter and a current block.

엔트로피 부호화부(245)는 양자화부(215)를 통해 양자화된 변환 계수들을 엔트로피 부호화할 수 있다. 예를 들어, 컨텐스트 적응 가변 길이 코딩(CAVLC), 컨텍스트 적응 2진 산술 코딩(CABAC), 구문 기반 컨텍스트 적응 2진 산술 코딩(SBAC), 확률 간격 파티셔닝 엔트로피(PIPE) 코딩 등의 기법을 수행할 수 있다.The entropy encoding unit 245 may entropy encode the transform coefficients quantized by the quantization unit 215 . For example, techniques such as context-adaptive variable-length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), syntax-based context-adaptive binary arithmetic coding (SBAC), and probability interval partitioning entropy (PIPE) coding may be performed. can

엔트로피 부호화부(245)는 양자화 계수를 부호화한 비트열과 부호화된 비트열을 복호화하는데 필요한 다양한 정보들을 부호화 데이터에 포함할 수 있다. 부호화 데이터는 부호화된 블록 형태, 양자화 계수 및 양자화 블록이 부호화된 비트열 및 예측에 필요한 정보 등을 포함할 수 있다. 양자화 계수의 경우 2차원의 양자화 계수를 1차원으로 스캐닝할 수 있다. 양자화 계수는 영상의 특성에 따라 분포도가 달라질 수 있다. 특히, 화면 내 예측의 경우 계수의 분포가 예측 모드에 따라 특정한 분포를 가질 수 있기 때문에 스캔 방법을 달리 설정할 수 있다.The entropy encoding unit 245 may include in encoded data a bit stream obtained by encoding a quantization coefficient and various pieces of information required to decode the encoded bit stream. Encoded data may include an encoded block type, quantization coefficients, a bit stream in which the quantization block is encoded, and information necessary for prediction. In the case of quantization coefficients, 2-dimensional quantization coefficients can be scanned in 1-dimensional. The distribution of the quantization coefficient may vary according to the characteristics of an image. In particular, in the case of intra-prediction, since the distribution of coefficients may have a specific distribution according to the prediction mode, a scan method may be set differently.

또한, 엔트로피 부호화부(245)는 부호화하는 블록의 크기에 따라 달리 설정될 수 있다. 스캔 패턴은 지그재그, 대각선, 래스터(raster) 등 다양한 패턴들 중 적어도 어느 하나 이상으로 미리 설정하거나 후보로 설정할 수 있으며, 부호화 모드, 예측 모드 정보 등에 의해 결정될 수 있고, 부호화기와 복호화기의 동일한 설정하에 사용될 수 있다. 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송 가능하다.Also, the entropy encoding unit 245 may be set differently according to the size of a block to be encoded. The scan pattern may be preset or set as a candidate for at least one of various patterns such as zigzag, diagonal, raster, etc., and may be determined by encoding mode, prediction mode information, etc., under the same settings of the encoder and decoder. can be used This information can be transmitted in units such as sequences, pictures, and slices.

엔트로피 부호화부(245)에 입력되는 양자화된 블록(이하, 양자화 블록)의 크기는 변환 블록의 크기와 같거나 작을 수 있다. 또한, 양자화 블록은 2개 이상의 서브 블록으로 분할될 수 있으며, 분할된 경우에 분할 블록에서 스캔 패턴은 기존의 양자화 블록과 동일하게 설정할 수도 있고, 다르게 설정할 수도 있다.The size of the quantized block (hereinafter referred to as quantization block) input to the entropy encoding unit 245 may be equal to or smaller than the size of the transform block. In addition, a quantization block may be divided into two or more sub-blocks, and in case of division, the scan pattern of the divided block may be set to be the same as or different from that of the existing quantization block.

예를 들어, 기존의 양자화 블록의 스캔 패턴을 지그재그라고 할 경우, 서브 블록 모두에 지그재그를 적용할 수도 있고, 또는 DC 성분을 포함하는 블록의 좌측 상단에 위치하는 서브블록에 지그재그 패턴을 적용하고, 그 이외의 블록에는 대각선 패턴을 적용할 수 있다. 이 역시 부호화 모드, 예측 모드 정보 등에 따라 결정될 수 있다.For example, if the scan pattern of an existing quantization block is zigzag, the zigzag pattern may be applied to all subblocks, or the zigzag pattern may be applied to a subblock located at the upper left of a block including a DC component, Diagonal patterns can be applied to other blocks. This may also be determined according to encoding mode, prediction mode information, and the like.

또한, 엔트로피 부호화부(245)에서 스캔 패턴의 시작 위치는 기본적으로 좌측 상단으로부터 시작을 하나, 영상의 특성에 따라 우측 상단, 우측 하단 또는 좌측 하단에서 시작할 수 있으며, 2개 이상의 후보군 중 어느 것을 선택했는지에 대한 정보를 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송할 수 있다. 부호화 기술로서는 엔트로피 부호화 기술이 사용될 수 있으나 이에 한정되지 않는다.In addition, the starting position of the scan pattern in the entropy encoding unit 245 basically starts from the upper left corner, but may start from the upper right corner, lower right corner, or lower left corner depending on the characteristics of the image, and any one of two or more candidate groups is selected. Information on whether or not it has been performed can be transmitted in units of sequences, pictures, slices, and the like. Entropy encoding technology may be used as the encoding technology, but is not limited thereto.

한편, 도 2 및 도 3에 도시한 역양자화부(220)의 역양자화 및 역변환부(225)의 역변환은 위의 양자화부(215)의 양장화 및 변환부(210)의 변환 구조를 반대로 구성하고 기본적인 필터부(235, 330)를 조합하는 것으로 구현 가능하다.On the other hand, the inverse quantization of the inverse quantization unit 220 and the inverse transformation of the inverse transform unit 225 shown in FIGS. 2 and 3 reverse the structure of the quantization of the quantization unit 215 and the transformation of the transform unit 210. And it can be implemented by combining the basic filter units 235 and 330.

이하에서는, 앞서 설명한 참조 화소 구성 단계에 대하여 보다 상세히 설명한다.Hereinafter, the aforementioned reference pixel configuration step will be described in more detail.

본 발명의 실시예에 따른 화면내 예측을 수행할 때 이웃하는 블록의 참조 화소 이용 가부(availability)를 확인해야 하는데, 참조 화소 이용 가부는 이웃 블록의 위치, 분할 블록 내 현재 블록의 위치, 현재 블록과 이웃 블록의 경계 특성 등의 요인 중 최소 하나 이상의 요인 또는 이들의 조합으로 판단할 수 있다. 예를 들면, M×M 블록이 블록 분할부를 통해 4개의 M/2×M/2 블록(본 예에서 래스터 스캔방향으로 0, 1, 2, 3 인덱스 할당)으로 분할이 되었고 현재 블록은 3번의 M/2×M/2 블록일 경우, 현재 블록 기준으로 특정 방향(본 예에서는, 우측 상단과 좌측 하단)에 위치한 이웃 블록은 현재 블록과 같은 픽쳐, 슬라이스, 타일 등의 단위에 속하더라도 아직 부호화가 되어 있지 않기 때문에 상기 블록은 이용 불가라 판단되기 때문에 해당 블록의 참조 화소를 사용할 수가 없다. 다른 예로, 현재 블록과 이웃 블록의 경계 특성(슬라이스, 타일 등의 경계)에 따라 이웃 블록의 참조 화소 이용 가부가 결정될 수 있다.When performing intra prediction according to an embodiment of the present invention, it is necessary to check the availability of reference pixels of neighboring blocks. It may be determined by at least one factor or a combination thereof among factors such as and boundary characteristics of neighboring blocks. For example, an M×M block is divided into 4 M/2×M/2 blocks (in this example, 0, 1, 2, and 3 indexes are assigned in the raster scan direction) through the block divider, and the current block is 3 In the case of M/2×M/2 blocks in number, the neighboring blocks located in a specific direction (in this example, the upper right and lower left) relative to the current block belong to the same unit of picture, slice, or tile as the current block, but are not yet Since the block is not encoded, it is determined that the block is unavailable, and thus the reference pixel of the corresponding block cannot be used. As another example, whether to use a reference pixel of a neighboring block may be determined according to a boundary characteristic (a boundary such as a slice or a tile) between a current block and a neighboring block.

이웃 블록의 참조 화소 이용 가부에 대한 다른 예로, P나 B 슬라이스일 경우 시간 흐름에 따른 오류 누적(Error Propogation)을 피하기 위한 목적으로 부호화기/복호화기에서 오류 누적 가능성이 높은 데이터의 사용의 여부를 결정하는 설정을 지원할 수 있다. 이 설정 정보에 따라 오류 누적 가능성이 높은 데이터를 예측 블록 생성에 사용할지 여부를 결정할 수 있는데, HEVC의 constrained_intra_pred_flag(CIP)와 같은 플래그가 위와 비슷한 역할을 수행할 수 있다. 상기 플래그는 화면 내 예측 블록 생성에 참조되는 이웃 블록 중 오류 누적 가능성이 높은 화면 간 예측 모드로 부호화된 이웃 블록의 사용 여부를 결정할 수 있다. 상기 플래그가 0이면 화면 간 예측으로 부호화된 블록의 참조화소를 사용할 수 없고, 상기 플래그가 1이면 화면 간 예측으로 부호화된 블록의 참조화소를 사용할 수 있다. As another example of whether or not to use reference pixels of neighboring blocks, in the case of P or B slices, determine whether to use data with a high probability of error accumulation in the encoder/decoder for the purpose of avoiding error propogation over time settings can be supported. Depending on this setting information, it is possible to determine whether or not to use data with a high probability of error accumulation for prediction block generation. The flag may determine whether to use a neighboring block coded in an inter-prediction mode having a high possibility of error accumulation among neighboring blocks referred to for generation of an intra-prediction block. If the flag is 0, reference pixels of blocks encoded by inter prediction cannot be used, and if the flag is 1, reference pixels of blocks encoded by inter prediction can be used.

후술되는 예는 상기 플래그가 0이 아닐 때의 예측 블록을 생성하는 경우를 설명한다. 상기 플래그의 추가적인 설정으로 오류 누적 가능성과 관계없이 상기 참조 화소 이용 가부를 이용 불가로 하여 어떤 참조 화소도 예측에 사용되지 못하게 할 수 있다. 이 경우, 예측 블록은 어떤 참조 화소도 사용할 수 없기 때문에 기설정된 값(예를 들어, 비트 심도가 갖는 화소값 범위의 중간값)을 채워 예측 블록을 생성할 수도 있다. 또는, 기설정된 값 기준으로 에지 정보 등을 적용한 예측 블록을 생성할 수도 있다. 예를 들어, 기설정값은 A라고 할 경우 M?N 블록 내의 임의 화소 기준으로 임의의 화소를 포함한 오른쪽 영역은 (A+B), 그 외의 영역은 (A-C)를 각 영역에 채워 예측 블록을 생성할 수 있으며, 이 때 B와 C는 에지 정보를 표현하기 위해 사용된 파라미터를 의미한다.An example to be described later describes a case of generating a prediction block when the flag is not 0. By additional setting of the flag, regardless of the possibility of error accumulation, whether or not the reference pixel can be used is disabled so that no reference pixel can be used for prediction. In this case, since the prediction block cannot use any reference pixel, the prediction block may be generated by filling in a predetermined value (eg, a median value of a pixel value range of a bit depth). Alternatively, a prediction block to which edge information or the like is applied may be generated based on a preset value. For example, if the preset value is A, the right area including a random pixel is filled with (A+B) and the other areas (A-C) based on a random pixel in the M?N block to form a prediction block. In this case, B and C mean parameters used to express edge information.

또한, 상기 플래그의 추가적인 설정으로 오류 누적 가능성을 화면 간 예측으로 부호화된 이웃 블록의 개수, 이웃 블록의 참조 화소 개수 등으로 판단할 수도 있다. 상기 판단에 따라 화면 내 예측을 통해 부호화된 블록의 참조 화소도 예측에 사용 여부가 결정될 수 있다. 예를 들어, 현재 블록에 인접한 M개의 이웃 블록 중 N개 미만의 블록이 화면 간 예측으로 부호화된 블록일 경우, 상기 블록의 참조 화소를 예측 블록 생성에 사용할 수 없을 뿐만 아니라 (M-N)개의 화면 내 예측으로 부호화된 블록의 참조 화소도 예측 블록 생성에 사용할 수 없을 수 있다. 상기 판단 기준인 블록 개수는 블록의 크기 또는 형태에 따라 영향을 받을 수 있기 때문에 현재 블록의 예측에 사용될 위치에 존재하는 참조 화소 개수로 대체할 수 있고, 이외 다른 요소도 고려될 수 있다.In addition, by additionally setting the flag, the possibility of error accumulation may be determined based on the number of neighboring blocks coded through inter-prediction, the number of reference pixels of neighboring blocks, and the like. Depending on the above determination, it may be determined whether or not reference pixels of blocks encoded through intra-prediction are also used for prediction. For example, if less than N blocks among M neighboring blocks adjacent to the current block are blocks encoded by inter-prediction, reference pixels of the blocks cannot be used for prediction block generation, and within (M-N) number of blocks Reference pixels of prediction-encoded blocks may also be unavailable for generation of prediction blocks. Since the number of blocks as the criterion may be affected by the size or shape of the block, it may be replaced with the number of reference pixels existing at a position to be used for prediction of the current block, and other factors may also be considered.

상기 참조 화소 이용 가부에 따라 생성되는 예측 블록이 영향을 받을 수 있다. 예를 들어, 상기 여러 가지 요인으로 결정된 참조 화소 이용 가부에 따라 현재 블록의 이웃 블록 중 최소 하나 이상이 이용가능할 경우, 이용 가능한 블록의 참조 화소로부터 유도(예를 들어, 복사, 평균 등)된 화소로 이용 불가한 블록의 참조 화소를 대체할 수 있다. 다른 예로, 참조 화소 이용 가부에 따라 이용가능한 블록이 없을 경우, 기설정된 값(예를 들어, 비트 심도가 갖는 화소값 범위의 중간값 등)으로 이용불가한 블록의 참조 화소를 대체할 수 있다.Depending on whether or not the reference pixel is available, a generated prediction block may be affected. For example, if at least one of the neighboring blocks of the current block is available according to the availability of the reference pixel determined by the various factors, a pixel derived (eg, copied, averaged, etc.) from the reference pixel of the available block A reference pixel of an unavailable block can be replaced with . As another example, if there is no block available according to whether or not the reference pixel can be used, the reference pixel of the unavailable block may be replaced with a preset value (eg, a median value of a pixel value range having a bit depth).

부호화기 또는 복호화기의 설정에 따라 상기 이용 가능한 블록으로부터 유도된 값의 대체가 금지될 수도 있으며, 이 경우 해당 블록으로부터의 유도되는 예측 모드는 사용할 수 없다.Substitution of a value derived from the available block may be prohibited according to settings of an encoder or decoder, and in this case, a prediction mode derived from the corresponding block cannot be used.

이하에서 이러한 내용을 도면을 참조하여 보다 자세히 설명한다.Hereinafter, these contents will be described in more detail with reference to the drawings.

도 15는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드를 설명하기 위한 예시도이다. 15 is an exemplary view for explaining an encoding mode of a neighboring block in intra prediction according to an embodiment of the present invention.

도 15를 참조하면, 현재 블록의 이웃 블록의 부호화 모드에 따라 해당 블록의 참조 화소를 예측 블록 생성에 사용 여부를 결정할 수 있다. 이때, 이웃 블록은 블록 분할부를 통해 획득된 M?M의 정사각 형태 또는 M?N의 직사각 형태일 수 있으며, 부호화 모드에 따라 화면 내 예측 또는 화면 간 예측 중 하나로 부호화 될 수 있다. 도 15에서 도시한 바와 같이, 현재 블록이 가운데 블록이라 하면, 좌상단에 위치한 블록은 화면 간 예측(Inter)으로, 상단에 위치한 두개의 블록은 화면 내 예측(Intra)으로, 우상단에 위치한 블록은 다시 그 안에 좌측에서부터 화면 간 예측, 화면 내 예측, 화면 내 예측으로 부호화 된 상황을 가정할 수 있다.Referring to FIG. 15 , it is possible to determine whether to use a reference pixel of a corresponding block to generate a prediction block according to an encoding mode of a block adjacent to a current block. In this case, the neighboring block may have a square shape of M? M or a rectangular shape of M? N obtained through the block divider, and may be encoded as either intra prediction or inter prediction according to an encoding mode. As shown in FIG. 15, if the current block is the middle block, the upper left block is inter prediction (Inter), the upper two blocks are intra prediction (Intra), and the upper right block is again In it, it is possible to assume a situation coded as inter-prediction, intra-prediction, and intra-prediction from the left.

상기 화면 간 예측으로 부호화된 블록은 참조 픽쳐에 따라 추가 분류될 수 있다. 도 15의 화면 간 예측(Inter)로 부호화된 ref=t로 표현한 것은 참조 픽쳐가 현재 픽쳐를 지시한다.Blocks encoded by the inter-prediction method may be additionally classified according to reference pictures. 15, coded by inter prediction (Inter), and expressed as ref = t, the reference picture indicates the current picture.

상기와 같은 전제하에서 도 16a 및 도 16b를 설명한다.16A and 16B will be described under the above premise.

**

도 16a는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드를 고려한 참조 화소 이용 가부을 설명하기 위한 예시도이다. 도 16b는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드를 고려하지 않은, 참조 화소 이용 가부을 설명하기 위한 예시도이다.16A is an exemplary diagram for explaining whether to use a reference pixel in consideration of an encoding mode of a neighboring block in intra prediction according to an embodiment of the present invention. 16B is an exemplary diagram for explaining whether or not a reference pixel is used without considering the coding mode of a neighboring block in intra prediction according to an embodiment of the present invention.

후술되는 예에서는 이웃한 블록의 부호화 모드를 고려할 지 여부는 CIP 플래그를 사용하여 설명한다. 구체적으로 CIP 플래그가 1을 지시하는 경우, 특정 부호화 모드(본 예에서는 화면 간 예측)로 부호화된 블록은 현재 블록의 예측에 사용될 수 없고, 0을 지시하는 경우, 어떤 부호화 모드의 블록 현재 블록의 예측에 사용될 수 있다.In an example to be described later, whether or not to consider the encoding mode of a neighboring block is described using a CIP flag. Specifically, when the CIP flag indicates 1, a block encoded in a specific encoding mode (inter prediction in this example) cannot be used for prediction of the current block, and when the CIP flag indicates 0, a block in a certain encoding mode of the current block can be used for prediction.

*도 16a를 참조하면, CIP 플래그가 1이고 이웃 블록이 화면 간 예측(Inter)으로 부호화 된 경우 해당 블록의 참조 화소는 현재 블록의 예측에 이용될 수 없다. 빗금으로 표시된, 화면 내 예측(Intra)으로 부호화된 블록의 이웃 블록의 참조 화소는 현재 블록이 예측에 이용될 수 있다.* Referring to FIG. 16A, when the CIP flag is 1 and a neighboring block is coded by inter prediction (Inter), the reference pixel of the corresponding block cannot be used for prediction of the current block. A reference pixel of a block adjacent to a block coded by intra prediction (Intra), indicated by hatched lines, may be used for prediction of the current block.

여기서, 참조 화소로 활용 가능한 블록 내의 현재 블록과 인접한 화소가 참조 화소로서 이용될 수 있으며, 그 외 추가적인 화소도 포함될 수 있다.Here, a pixel adjacent to a current block within a block usable as a reference pixel may be used as a reference pixel, and other additional pixels may also be included.

도 16b를 참조하면, CIP 플래그가 0일 경우에 부호화된 블록의 참조 화소는 현재 블록 예측에 이용될 수 있다. 즉, 현재 블록의 좌상단, 상단, 우상단, 좌측, 좌하단 블록 내에 있는 현재 블록과 인접한 화소를 참조 화소로 이용할 수 있다.Referring to FIG. 16B, when the CIP flag is 0, reference pixels of an encoded block may be used for prediction of a current block. That is, pixels adjacent to the current block in the upper left, upper, upper right, left, and lower left blocks of the current block may be used as reference pixels.

도 17은, 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드를 설명하기 위한 또 다른 예시도이다.17 is another exemplary diagram for explaining an encoding mode of a neighboring block in intra prediction according to an embodiment of the present invention.

도 17을 참조하면, 이웃 블록은 화면 내 예측(Intra), 화면 간 예측(Inter) 중 하나로 부호화가 되었으며, 이웃 블록이 화면 간 예측으로 부호화된 경우에는, 이때 사용된 참조 픽쳐에 대한 표시로서, ref=t는 참조 픽쳐가 현재 픽쳐인 것을 지시하고, ref=t-1은 참조 픽쳐가 현재 픽쳐 바로 이전 픽쳐인 것을 지시하며, ref=t-2는 참조 픽쳐가 현재 픽쳐의 두번째 전 픽쳐를 지시할 수 있으며, 화면 간 예측의 참조 방향 등에 따라 다른 참조 픽쳐도 추가될 수 있다. 우상단의 블록은 픽쳐 범위를 벗어난 곳에 위치한 블록을 의미한다.Referring to FIG. 17, a neighboring block is coded with either intra prediction (Intra) or inter prediction (Inter), and when the neighboring block is coded with inter prediction, as an indication of a reference picture used at this time, ref=t indicates that the reference picture is the current picture, ref=t-1 indicates that the reference picture is the picture immediately preceding the current picture, and ref=t-2 indicates that the reference picture is the second previous picture of the current picture. and other reference pictures may be added according to the reference direction of inter-prediction. The upper right block means a block located outside the picture range.

도 17과 같은 부호화 상태를 전제로 하여, 참조 화소로 이용 가능 여부를 결정하는 예시를 도 18a 내지 도 18c에서 설명한다.An example of determining whether to use as a reference pixel on the premise of an encoding state as shown in FIG. 17 will be described with reference to FIGS. 18A to 18C.

도 18a는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드가 화면 내 예측인 경우를 설명하는 예시도이다. 도 18b는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드와 참조 픽쳐를 고려한 것을 설명하는 예시도이다. 도 18c는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드를 고려하지 않는 경우를 설명하기 위한 또 다른 예시도이다.18A is an exemplary view illustrating a case in which an encoding mode of a neighboring block is intra prediction in intra prediction according to an embodiment of the present invention. 18B is an exemplary view illustrating consideration of coding modes and reference pictures of neighboring blocks in intra prediction according to an embodiment of the present invention. 18C is another exemplary diagram for explaining a case in which encoding modes of neighboring blocks are not considered in intra prediction according to an embodiment of the present invention.

도 18a를 참조하면, 앞서 도 17의 부호화 모드에서 화면 내 예측으로 부호화된 이웃한 블록은 빗금으로 표시될 수 있다.Referring to FIG. 18A, neighboring blocks previously encoded by intra prediction in the encoding mode of FIG. 17 may be indicated by hatched lines.

이와 같이 빗금으로 표시된 블록은, 화면 내 예측이기 때문에, 해당하는 블록 내의 화소를 참조 화소로 이용 가능할 수 있다.Since a block indicated by hatching is an intra-prediction, a pixel within the block may be used as a reference pixel.

또한, 이 경우에도, 이웃한 블록의 부호화 모드를 고려할 것인지 여부는 CIP 플래그에 따라 지시될 수 있고, CIP 플래그가 1인 경우에 대한 예시일 수 있다.Also, even in this case, whether or not to consider the encoding mode of a neighboring block may be indicated according to a CIP flag, and this may be an example of a case in which the CIP flag is 1.

도 18b를 참조하면, 앞서 도 17의 부호화 모드 상태에서 화면 내 예측으로 부호화된 블록 내의 화소는 참조 화소로 이용될 수 있음은 앞서 설명한 바와 같다.Referring to FIG. 18B , as described above, a pixel in a block encoded by intra prediction in the encoding mode of FIG. 17 can be used as a reference pixel.

그러나, 도 18b에서는 이에 더하여, 이웃한 블록이 화면 간 예측으로 부호화된 경우라 하더라도, 이웃한 블록의 참조 픽쳐가 현재 픽쳐라면, 그러한 블록 내의 화소는 참조 화소로 이용될 수 있다. 또는, 이웃한 블록의 참조 픽쳐가 현재 픽쳐라면, 해당 블록의 화소는 참조 화소로 이용될 수 없을 수도 있다.However, in addition to this in FIG. 18B, even if a neighboring block is coded by inter-prediction, if the reference picture of the neighboring block is the current picture, pixels in the neighboring block can be used as reference pixels. Alternatively, if the reference picture of a neighboring block is the current picture, pixels of the corresponding block may not be used as reference pixels.

이것은 이웃한 블록의 참조 픽쳐가 현재 픽쳐라면, 픽쳐간의 시간적인 흐름에 따른 오류 누적(error propagation)이 발생하지 않기 때문에 이용 가능할 수 있다. 이와 반대로, 현재 픽쳐에서 참조한 블록이 이전 또는 이후 픽쳐로부터 부호화된 블록일 경우에는 오류 누적이 발생할 수도 있기 때문에 이용불가할 수 있다.This can be used because if the reference picture of a neighboring block is the current picture, error propagation does not occur between pictures according to the time lapse. Conversely, if a block referenced by the current picture is a block coded from a previous or subsequent picture, it may be unavailable because error accumulation may occur.

위와 같이 참조 화소 이용 가부는 이웃 블록의 위치, 이웃 블록의 부호화 모드, 분할 블록 내 현재 블록의 위치, 현재 블록과 이웃 블록의 경계 특성 등의 요인 중 최소 하나 이상의 요인 또는 이들의 조합으로 판단할 수 있으며, 참조 픽쳐도 상기 요인으로 추가될 수 있다. 상세하게는, 이웃 블록의 참조 픽쳐의 인덱스 또는 픽쳐 오더 카운트(Picture Order Count, POC) 등을 고려하여 해당 블록의 참조 화소의 현재 블록의 예측에 이용할 지 여부를 결정할 수 있다. 위의 예에서는 참조 픽쳐가 현재 픽쳐인 것을 특정하여 예를 들었으나, 다른 인덱스 또는 픽쳐 오더 카운트(Picture Order Count, POC)를 갖는 참조 픽쳐로의 확장이 가능하다. 또한, 화면 간 예측의 참조 방향이 단방향 예측(L0, L1)과 양방향 예측인 경우에도 참조 픽쳐 인덱스(L0, L1)에 대한 다양한 설정을 구성할 수도 있다.As above, whether or not to use the reference pixel can be determined by at least one of factors such as the location of the neighboring block, the encoding mode of the neighboring block, the location of the current block in the divided block, and the boundary characteristics between the current block and the neighboring block, or a combination thereof. and a reference picture may also be added as the factor. In detail, it is possible to determine whether to use reference pixels of a corresponding block for prediction of the current block by considering the index of the reference picture of the neighboring block or the picture order count (POC). Although the above example specified that the reference picture is the current picture, extension to a reference picture having a different index or picture order count (POC) is possible. In addition, even when the reference directions of inter prediction are unidirectional prediction (L0, L1) and bidirectional prediction, various settings for reference picture indices (L0, L1) may be configured.

이에 따라, 도 18a에서 빗금으로 표시된 블록(화면 내 예측된 블록)뿐만 아니라, 화면 간 예측으로 부호화되었고, 그에 대한 참조 픽쳐가 현재 픽쳐인 블록 내의 화소까지 참조 화소로 이용될 수 있다.Accordingly, not only blocks indicated by hatching in FIG. 18A (intra-predicted blocks), but also pixels in blocks that have been coded through inter-prediction and whose reference picture is the current picture can be used as reference pixels.

또한, 이 경우에도, 이웃한 블록의 부호화 모드를 고려할 것인지 여부는 CIP 플래그에 따라 지시될 수 있으므로, 플래그가 1인 경우를 설명하는 예시일 수 있다.Also, even in this case, whether or not to consider the encoding mode of a neighboring block may be indicated according to the CIP flag, so this may be an example describing a case in which the flag is 1.

도 18c를 참조하면, 이웃한 블록 내의 인접한 화소들은 원칙적으로 모두 참조 화소로 이용할 수 있다.Referring to FIG. 18C , in principle, adjacent pixels in adjacent blocks can all be used as reference pixels.

다만, 가운데 위치한 현재 블록의 우측 상단에 표현된 영역은 영상 데이터가 없는 부분 또는 영상 밖의 영역이기 때문에 어느 경우에나, 이용가능하지 않은 영역에 해당할 수 있다.However, since the area expressed at the upper right of the current block located in the middle is a part without image data or an area outside the image, it may correspond to an unavailable area in any case.

앞서 도 15 내지 도 18c를 통하여 설명한 예시들을 정리하면 다음과 같다.Examples described above with reference to FIGS. 15 to 18C are summarized as follows.

먼저 현재 블록의 이웃 블록의 참조 화소에 대한 참조 화소 이용 가능 여부(availability)를 결정할 수 있다.First, availability of reference pixels for reference pixels of neighboring blocks of the current block may be determined.

만약 이웃한 모든 블록 내의 참조 화소가 이용 불가능(not available)한 것으로 결정될 경우에는 미리 설정한 화소 값으로 구성된 참조 화소를 획득할 수 있다. 예를 들면, 예를 들면, 픽셀의 표현 범위의 중간 값으로 참조 화소를 구성할 수 있다. 더 구체적으로는, 1 << (bit depth - 1)로 참조 화소들에 값을 할당할 수 있는데, 비트 심도(bit depth)는 픽셀을 표현하기 위해 사용되는 비트수를 의미하므로 예시의 값은 픽셀의 표현 범위의 중간값을 의미할 수 있다.If it is determined that reference pixels in all neighboring blocks are not available, reference pixels configured with preset pixel values may be obtained. For example, a reference pixel may be configured as an intermediate value of a pixel expression range. More specifically, values can be assigned to reference pixels as 1 << (bit depth - 1). Since bit depth means the number of bits used to represent a pixel, the example value is pixels. It may mean the median value of the expression range of

최소 하나 이상의 이웃한 블록이 이용 가능한 것으로 결정할 때, 이웃하는 블록(왼쪽, 위쪽, 왼쪽 위, 오른쪽 위, 왼쪽 아래 블록 등)의 부호화 모드를 고려할 수 있다.When determining that at least one neighboring block is usable, the encoding mode of the neighboring block (left, upper, upper left, upper right, lower left block, etc.) may be considered.

또한, 부호화 모드를 고려하는지 여부를 지시하는 미리 설정된 플래그를 이용할 수 있다.In addition, a preset flag indicating whether to consider the encoding mode can be used.

예를 들면, 부호화 모드를 고려하지 않고, 이웃한 블록 내의 화소 모두 참조 화소로 사용할 수 있고, 여기서, 미리 설정된 플래그가 부호화 모드를 고려하지 않는 것으로 지시할 수 있다.For example, all pixels in neighboring blocks may be used as reference pixels without considering the encoding mode, and here, a preset flag may indicate that the encoding mode is not considered.

여기서, 이웃한 블록의 부호화 모드가 화면간 예측인 경우, 이웃한 블록은 이용 불가능한 것으로 결정하여, 이웃한 블록 내의 화소는 참조 화소에 사용하지 않을 수 있다.Here, when the coding mode of the neighboring block is inter-prediction, it is determined that the neighboring block is unusable, and pixels in the neighboring block may not be used as reference pixels.

또한, 이웃한 블록의 부호화 모드가 화면간 예측인 경우라 하더라도, 이웃한 블록의 참조 픽쳐를 확인하여 현재 픽쳐일 경우에는 참조 화소로 사용할 수 있다.In addition, even if the coding mode of the neighboring block is inter-prediction, a reference picture of the neighboring block can be checked and used as a reference pixel if it is the current picture.

여기서, 참조 픽쳐는, 현재 픽쳐 이전의 참조 픽쳐들에 대한 데이터를 저장하는 리스트 0 또는 현재 픽쳐 이후의 참조 픽쳐들에 대한 데이터를 저장하는 리스트 1에서 선택되고, 현재 픽쳐가 상기 리스트 0 또는 상기 리스트 1에 포함될 수 있다.Here, the reference picture is selected from list 0, which stores data for reference pictures preceding the current picture, or list 1, which stores data for reference pictures subsequent to the current picture, and the current picture is selected from list 0 or the list. 1 can be included.

또한, 이웃한 블록의 부호화 모드가 화면간 예측인 경우라 하더라도, 이웃한 블록의 참조 픽쳐를 확인하여 I 픽쳐(P나 B는 제외한)일 경우에는 참조 화소로 사용할 수 있다.Also, even if the coding mode of the neighboring block is inter-prediction, the reference picture of the neighboring block is checked and if it is an I picture (excluding P or B), it can be used as a reference pixel.

다만, 상기와 같은 제약 조건들은 특정 조건을 고려하여 이웃한 블록내의 화소를 참조 화소로 이용할 수 있는지 결정하는 예시로서 이해되어야 한다. 즉, 이웃한 블록의 부호화 모드가 화면간 예측이고, 그 이웃한 블록에 대한 부호화 정보인 움직임 벡터, 참조 픽쳐 정보 등을 참조하여 참조 화소로 이용 가능 여부를 결정할 수 있고, 이 경우, 시퀀스, 픽쳐, 슬라이스 등의 단위로 상기에서 예시한 조건을 설정할 수 있다.However, the above constraints should be understood as examples for determining whether a pixel in a neighboring block can be used as a reference pixel in consideration of a specific condition. That is, the coding mode of a neighboring block is inter-prediction, and whether or not it can be used as a reference pixel can be determined by referring to motion vectors, reference picture information, etc., which are coding information for the neighboring block. In this case, the sequence and picture , The conditions exemplified above can be set in units such as slices.

본 발명의 실시예에 따른 참조 화소 이용 가능 여부 판단은 다음과 같은 흐름에 따를 수도 있다.Determination of availability of a reference pixel according to an embodiment of the present invention may follow the following flow.

먼저, 현재 블록과 이웃한 블록이 픽쳐, 슬라이스, 타일 등의 경계 넘어 위치한지를 확인할 수 있다. 그 후, 이웃한 블록의 부호화 여부를 확인할 수 있다. 이후, 이웃한 블록의 슬라이스 타입을 확인하여 I 슬라이스일 경우에는 이웃한 블록 내의 경계 화소를 현재 블록의 참조 화소로 이용 가능(available)한 것으로 설정할 수 있다. 만약 P 슬라이스 일 경우에는 단방향 예측이므로 참조 픽쳐 리스트 0(ref_idx_l0)를 확인하여 참조 픽쳐를 확인한다. 참조 픽쳐가 현재 픽쳐일 경우에는 현재 픽쳐의 참조 화소로 이용 가능(available)한 것으로 설명할 수 있다. 다만, 이것은 하나의 예로 이해되어야 한다. 현재 픽쳐가 참조 픽쳐가 아닌 경우는 이용 불가능(not available)한 것으로 설정할 수 있다. 만약 B 슬라이스 일 경우에는, 예측 모드를 확인하여 단방향_L0, 단방향_L1, 양방향인지 확인하여 현재 픽쳐를 참조픽쳐로 두는지를 확인한 후 참조 화소로의 이용 가능(available)여부를 확인할 수 있다.First, it can be checked whether a block adjacent to the current block is located beyond the boundary of a picture, slice, tile, or the like. After that, it is possible to check whether neighboring blocks are encoded. Thereafter, the slice type of the neighboring block is checked, and in the case of an I slice, a boundary pixel in the neighboring block may be set to be available as a reference pixel of the current block. If it is a P slice, since it is unidirectional prediction, the reference picture is checked by checking the reference picture list 0 (ref_idx_l0). If the reference picture is the current picture, it can be described as being available as a reference pixel of the current picture. However, this should be understood as an example. If the current picture is not a reference picture, it can be set as not available. If it is a B slice, it is possible to check whether the prediction mode is unidirectional_L0, unidirectional_L1, or bidirectional by checking whether the current picture is set as a reference picture, and then whether it is available as a reference pixel.

도 19a은, 이용가능한 이웃한 블록이 좌하단에 있는 블록인 경우, 참조 화소를 획득하는 방법을 설명하는 예시도이다. 도 19b는, 이용가능한 이웃한 블록이 우상단에 있는 블록인 경우, 참조 화소를 획득하는 방법을 설명하는 예시도이다. 도 19c는 이용가능한 이웃한 블록이 좌하단 및 우상단에 있는 블록인 경우, 참조 화소를 획득하는 방법을 설명하는 예시도이다. 도 19d는 이용가능한 이웃한 블록이 좌상단 및 우상단에 있는 블록인 경우, 참조 화소를 획득하는 방법을 설명하는 예시도이다.19A is an exemplary view illustrating a method of obtaining a reference pixel when an available neighboring block is a block in the lower left corner. 19B is an exemplary view illustrating a method of obtaining a reference pixel when an available neighboring block is a block in the upper right corner. 19C is an exemplary diagram explaining a method of obtaining a reference pixel when available neighboring blocks are blocks in lower left and upper right corners. 19D is an exemplary view illustrating a method of obtaining a reference pixel when available neighboring blocks are upper left and upper right blocks.

도 19a 내지 19d를 참조하면, 빗금친 화소는 이웃한 블록이 이용가능한 것으로 결정된 블록 내의 인접한 화소들을 의미할 수 있고, 화살표 방향은 참조 화소로 구성되는 방향을 의미할 수 있다.Referring to FIGS. 19A to 19D , hatched pixels may mean adjacent pixels in a block in which the adjacent block is determined to be usable, and an arrow direction may mean a direction in which a reference pixel is configured.

앞에서 설명한 바와 같이, 이웃한 블록은 이용 가능한 것으로 결정될 수 있으나, 이용 가능하지 않은 것으로 결정될 수 있다. 따라서, 이용 가능하지 않은 것으로 결정된 블록 내의 화소는 참조 화소로 이용할 수 없는데, 이러한 경우, 이용 불가능한 블록 내의 인접한 화소를 어떻게 구성해야 되는지 문제될 수 있다.As described above, a neighboring block may be determined to be available, but may be determined to be unavailable. Accordingly, a pixel in a block determined to be unavailable cannot be used as a reference pixel. In this case, a problem may arise as to how to configure adjacent pixels in the unavailable block.

도 19a 및 도 19b를 참조하면, 현재 블록의 우상단이나 좌하단에 있는 화소만 참조 화소로 이용 가능한 경우, 이용 불가능한 영역과 맞닿아있는 화소를 복사하여 이용 불가능한 영역 중 현재 블록에 인접한 화소에 채울 수 있다. Referring to FIGS. 19A and 19B , when only pixels in the upper right or lower left of the current block are available as reference pixels, pixels adjacent to the unavailable area may be copied and filled in pixels adjacent to the current block among the unavailable areas. have.

도 19c를 참조하면, 현재 블록의 우상단 및 좌하단 모두에 이용가능한 영역이 있을 경우, 어느 한쪽의 이용 가능한 영역의 화소로부터 복사할 수도 있고 (<아래에서 위로, 그리고 왼쪽에서 오른쪽> 또는 <왼쪽에서 오른쪽, 그리고 위에서 아래로> 또는 <아래에서 위로, 오른쪽에서 왼쪽으로> 와 같이), 양 쪽의 화소의 평균값을 채울 수도 있으며, 선형 보간하여 채울 수도 있다.Referring to FIG. 19C, if there are available areas in both the upper right and lower left of the current block, it is possible to copy from pixels in either available area (<bottom to top and left to right> or <left to right> Right, and top to bottom> or <bottom to top, right to left>), the average value of pixels on both sides can be filled, or it can be filled by linear interpolation.

도 19d를 참조하면, 참조 화소로 이용가능한 영역이 혼합되어 있을 경우, 어느 한쪽 방향(왼쪽방향, 아래방향)으로 값을 복사하여 채울 수도 있고, 현재 블록의 상단과 같이 양 쪽에 이용가능한 영역이 존재하는 곳에서는 보간, 평균 등 양 쪽의 화소를 활용하여 생성하는 값으로 채울 수도 있으며, 현재 블록의 좌 또는 좌하단과 같이 한 쪽만 이용가능한 영역이 존재하는 곳에서는 복사하여 채울 수도 있다.Referring to FIG. 19D, if the area usable as a reference pixel is mixed, the value can be copied and filled in either direction (left direction, downward direction), and there is an area available on both sides, such as the top of the current block It can be filled with a value generated by utilizing pixels on both sides, such as interpolation or average, or it can be copied and filled where there is an area where only one side is available, such as the left or bottom left of the current block.

도 19d를 참조하여 더 구체적으로 설명하면, 현재 블록의 우상단에 있는, P(-1, -1)과 P(blk_size, -1) 포함하여 오른쪽에 위치한 화소들은 이용 가능 할 수 있다. P(0, -1)부터 P(blk_size-1, -1)까지의 값은 이용 불가능(not available)할 수 있다. 이러한 경우 평균값으로 할당한다면, P(x, y){x는 0부터 blk_size-1까지, y는 1} = {P(-1, -1) + P(blk_size, -1)} + 1 /2의 값으로 할당할 수 있다. 이때, blk_size는 블록 크기를 의미할 수 있다.In more detail with reference to FIG. 19D , pixels located on the right including P(-1, -1) and P(blk_size, -1) at the top right of the current block may be available. Values from P(0, -1) to P(blk_size-1, -1) may not be available. In this case, if we assign the average value, P(x, y){x is from 0 to blk_size-1, y is 1} = {P(-1, -1) + P(blk_size, -1)} + 1 /2 can be assigned to the value of In this case, blk_size may mean a block size.

P(-1,0)를 포함하여 아래쪽에 위치한 화소들은 이용 불가능(not available)할 수 있다. 이 때 P(x, y){x는 1, y는 0부터 2*blk_size-1} = P(-1, -1)으로 할당할 수 있다.Pixels located below, including P(-1,0), may be not available. At this time, P(x, y) {x is 1, y is 0 to 2*blk_size-1} = P(-1, -1).

또한, 참조 화소의 위치에 따라 보간 수행 여부를 결정할 수 있다. 도 19c 와 같이 양 쪽에 이용가능(available)한 영역이 존재하더라도 이용가능(available)한 영역의 위치가 수직선으로 연결되어 있지 않은 경우에는 보간을 수행하는 것을 제한할 수 있다. 구체적으로, 이용 가능한 영역의 양 쪽 끝의 좌표를 비교하였을 때 P(-1, a), P(b, -1) 과 같이 x, y가 둘 중에 하나도 일치하지 않을 경우에는 보간 제한할 수 있다. 만약 P(a, -1), P(b, -1)과 같이 x, y 둘 중에 하나가 일치하는 경우에만 보간을 수행할 수 있다.In addition, it is possible to determine whether to perform interpolation according to the position of the reference pixel. As shown in FIG. 19C , even if available areas exist on both sides, interpolation may be limited if the positions of the available areas are not connected with vertical lines. Specifically, when comparing the coordinates at both ends of the available area, interpolation can be restricted when neither x nor y matches, such as P(-1, a) or P(b, -1). . Interpolation can be performed only when one of x and y matches, such as P(a, -1) and P(b, -1).

또한, 도 19d와 같이 양 쪽에 이용가능(available)한 영역이 존재하더라도 이용가능(available)한 영역의 위치가 수직선상에 놓여져 있을 경우에는 보간을 수행할 수 있다.In addition, as shown in FIG. 19D , interpolation may be performed when the location of the available area lies on a vertical line, even if there is an available area on both sides.

도 20은 본 발명의 실시예에 따른 영상 부호화 방법의 흐름도이다.20 is a flowchart of an image encoding method according to an embodiment of the present invention.

도 20을 참조하면, 화면 내 예측을 수행하는 영상 부호화 방법은, 현재 블록과 이웃한 블록 각각의 예측 모드를 고려하여, 이웃한 블록 내의 경계 화소를 현재 블록의 참조 화소로 이용 가능한지 여부를 결정하는 단계(S110), 결정한 결과에 따라, 현재 블록의 참조 화소를 획득하는 단계(S120), 획득한 참조 화소에 기초하여 화면 내 예측된 예측 블록을 생성하는 단계(S130) 및 생성한 예측 블록을 이용하여 상기 현재 블록을 부호화하는 단계(S140)를 포함할 수 있다.Referring to FIG. 20, an image encoding method for performing intra-prediction determines whether a boundary pixel in a neighboring block can be used as a reference pixel of a current block in consideration of a prediction mode of each of a current block and neighboring blocks. Step (S110), obtaining a reference pixel of the current block according to the determined result (S120), generating a predicted prediction block in the picture based on the obtained reference pixel (S130), and using the generated prediction block and encoding the current block (S140).

이에 대한 각 단계의 설명은, 상기 도 15 내지 18c를 참조할 수 있으므로 상세한 설명은 생략한다.For a description of each step, reference may be made to FIGS. 15 to 18C, so a detailed description thereof will be omitted.

본 발명의 실시예에 따른 화면 내 예측을 수행하는 영상 복호화 방법은, 현재 블록 및 현재 블록과 이웃한 블록의 예측 모드에 관한 데이터를 포함하는 비트 스트림을 수신하는 단계, 수신된 비트스트림으로부터 데이터를 추출하여, 이웃한 블록의 예측 모드를 확인하는 단계, 이웃한 블록의 예측 모드를 고려하여, 이웃한 블록 내의 경계 화소를 현재 블록의 참조 화소로 이용 가능한지 여부를 결정하는 단계, 결정한 결과에 따라, 현재 블록의 참조 화소를 획득하는 단계, 획득한 참조 화소에 기초하여 화면 내 예측된 예측 블록을 생성하는 단계 및 생성한 예측 블록을 이용하여 현재 블록을 복호화하는 단계를 포함할 수 있다.An image decoding method for performing intra-prediction according to an embodiment of the present invention includes the steps of receiving a bit stream including data about a current block and prediction modes of blocks adjacent to the current block, and extracting data from the received bit stream. extracting and confirming the prediction mode of the neighboring block, determining whether a boundary pixel in the neighboring block can be used as a reference pixel of the current block in consideration of the prediction mode of the neighboring block, according to the determined result, The method may include acquiring a reference pixel of the current block, generating a prediction block within a picture based on the obtained reference pixel, and decoding the current block using the generated prediction block.

여기서, 참조 화소를 획득하는 단계는, 경계 화소가 상기 현재 블록의 참조 화소로 이용 불가능한 것으로 결정되었으면, 미리 설정된 화소 값으로 구성한 참조 화소를 획득할 수 있다.Here, in the step of obtaining a reference pixel, if it is determined that a boundary pixel is unavailable as a reference pixel of the current block, a reference pixel configured with a preset pixel value may be obtained.

여기서 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 미리 설정된 플래그가 이웃한 블록의 예측 모드를 고려할 것인지 여부를 지시할 수 있다.Here, the step of determining whether a block can be used as a reference pixel may indicate whether a preset flag is to consider a prediction mode of a neighboring block.

여기서, 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 이웃한 블록의 예측 모드가 화면 내 예측이면, 경계 화소를 현재 픽쳐의 참조 화소로 이용 가능한 것으로 결정할 수 있다.Here, in the step of determining whether the block can be used as a reference pixel, if the prediction mode of the neighboring block is intra-prediction, it may be determined that the boundary pixel can be used as a reference pixel of the current picture.

여기서, 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 이웃한 블록의 예측 모드가 화면 간 예측이면, 경계 화소를 현재 픽쳐의 참조 화소로 이용 불가능한 것으로 결정할 수 있다.Here, in the step of determining whether the pixel can be used as a reference pixel, if the prediction mode of the neighboring block is inter-prediction, it may be determined that the boundary pixel is unavailable as a reference pixel of the current picture.

여기서, 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 이웃한 블록의 예측 모드가 화면 간 예측인 경우, 이웃한 블록의 참조 픽쳐를 고려하여, 경계 화소를 현재 픽쳐의 참조 화소로 이용가능한지 여부를 결정할 수 있다.Here, the step of determining whether a border pixel can be used as a reference pixel is, when the prediction mode of the neighboring block is inter-prediction, considering the reference picture of the neighboring block, whether or not the boundary pixel can be used as a reference pixel of the current picture. can decide

여기서, 참조 픽쳐는, 현재 픽쳐 이전의 참조 픽쳐들에 대한 데이터를 저장하는 리스트 0 또는 현재 픽쳐 이후의 참조 픽쳐들에 대한 데이터를 저장하는 리스트 1에서 선택되고, 현재 픽쳐가 리스트 0 또는 리스트 1에 포함될 수 있다.Here, the reference picture is selected from list 0, which stores data for reference pictures preceding the current picture, or list 1, which stores data for reference pictures subsequent to the current picture, and the current picture is in list 0 or list 1. can be included

여기서, 이웃한 블록의 참조 픽쳐가 현재 픽쳐인 경우에는, 경계 화소를 상기 현재 픽쳐의 참조 화소로 이용 가능한 것으로 결정할 수 있다.Here, when the reference picture of the neighboring block is the current picture, a boundary pixel may be determined to be usable as a reference pixel of the current picture.

여기서, 이웃한 블록의 참조 픽쳐가 현재 픽쳐가 아닌 경우에는, 이웃한 블록 내의 화소를 현재 픽쳐의 참조 화소로 이용 불가능한 것으로 결정할 수 있다.Here, when the reference picture of the neighboring block is not the current picture, pixels in the neighboring block may be determined to be unavailable as reference pixels of the current picture.

여기서, 이웃한 블록의 참조 픽쳐가 I 픽쳐인 경우, 이웃한 블록 내의 화소를 현재 픽쳐의 참조 화소로 이용 가능한 것으로 결정할 수 있다.Here, when the reference picture of the neighboring block is an I picture, pixels in the neighboring block may be determined to be usable as reference pixels of the current picture.

본 발명의 실시예에 따른 하나 이상의 프로세서들을 포함하는 영상 복호화 장치에서, 하나 이상의 프로세서들은, 현재 블록 및 현재 블록과 이웃한 블록의 예측 모드에 관한 데이터를 포함하는 비트 스트림을 수신하고, 수신된 비트스트림으로부터 데이터를 추출하여, 이웃한 블록의 예측 모드를 확인한 후, 이웃한 블록의 예측 모드를 고려하여, 이웃한 블록 내의 경계 화소를 현재 블록의 참조 화소로 이용 가능한지 여부를 결정하고, 결정한 결과에 따라, 현재 블록의 참조 화소를 획득하며, 획득한 참조 화소에 기초하여 화면 내 예측된 예측 블록을 생성하고, 생성한 예측 블록을 이용하여 현재 블록을 복호화할 수 있다.In the video decoding apparatus including one or more processors according to an embodiment of the present invention, the one or more processors receive a bit stream including data about a current block and prediction modes of blocks adjacent to the current block, and receive the received bits. After extracting data from the stream, checking the prediction mode of the neighboring block, determining whether or not a boundary pixel in the neighboring block can be used as a reference pixel of the current block in consideration of the prediction mode of the neighboring block, and based on the determined result. Accordingly, a reference pixel of the current block may be obtained, a prediction block within a picture may be generated based on the acquired reference pixel, and the current block may be decoded using the generated prediction block.

전술한 실시예에 의하면, 화면 내 예측 기술이 사용되고 있는 MPEG-2, MPEG-4, H.264 등의 국제 코덱 또는 기타 다른 코덱과 이 코덱들을 사용하는 매체, 그리고 영상 산업에 전반적으로 이용가능한 고성능 고효율의 영상 부호화 복호화 기술을 제공할 수 있다.According to the above-described embodiment, international codecs such as MPEG-2, MPEG-4, H.264 or other codecs in which intra-prediction technology is used, media using these codecs, and high performance generally available to the video industry A high-efficiency video encoding and decoding technology can be provided.

또한, 향후에는 현재의 고효율 영상 부호화 기술(HEVC) 및 H.264/AVC와 같은 표준 코덱과 화면 내 예측을 사용하는 영상 처리 분야에 적용이 예상된다.In addition, in the future, it is expected to be applied to the field of image processing using standard codecs and intra-prediction such as the current high-efficiency video coding technology (HEVC) and H.264/AVC.

이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although described with reference to the above embodiments, those skilled in the art will understand that the present invention can be variously modified and changed without departing from the spirit and scope of the present invention described in the claims below. You will be able to.

Claims (12)

삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 영상 복호화 방법에 있어서,
현재 픽처에 기초한 블록 매칭 예측이 상기 현재 픽처에 허용되는지 여부를 나타내는 현재 픽처 참조 정보를 복호화하는 단계;
현재 블록에 대한 참조 픽처 리스트 0 및 참조 픽처 리스트 1을 생성하는 단계, 상기 현재 픽처 참조 정보에 따라, 상기 현재 픽처는 상기 참조 픽처 리스트 0 및 상기 참조 픽처 리스트 1에 할당됨;
상기 참조 픽처 리스트 0 및 상기 참조 픽처 리스트 1에 기초하여, 상기 현재 블록에 대한 참조 픽처를 결정하는 단계; 및
상기 참조 픽처를 이용하여 상기 현재 블록에 대한 예측을 수행하는 단계를 포함하고,
상기 현재 픽처는 제1 참조 픽처가 상기 참조 픽처 리스트 0 에 할당된 후, 상기 참조 픽처 리스트 0에 할당되고,
상기 제1 참조 픽처는 상기 현재 픽처 이전에 표시되고,
상기 현재 픽처는 제2 참조 픽처가 상기 참조 픽처 리스트 1 에 할당된 후, 상기 참조 픽처 리스트 1에 할당되고,
상기 제2 참조 픽처는 상기 현재 픽처 이후에 표시되는 것을 특징으로 하는, 영상 복호화 방법.
In the video decoding method,
decoding current picture reference information indicating whether block matching prediction based on the current picture is allowed for the current picture;
generating reference picture list 0 and reference picture list 1 for the current block, the current picture being assigned to the reference picture list 0 and the reference picture list 1 according to the current picture reference information;
determining a reference picture for the current block based on the reference picture list 0 and the reference picture list 1; and
Performing prediction on the current block using the reference picture;
The current picture is assigned to the reference picture list 0 after a first reference picture is assigned to the reference picture list 0;
The first reference picture is displayed before the current picture,
The current picture is assigned to reference picture list 1 after a second reference picture is assigned to reference picture list 1;
The second reference picture is displayed after the current picture.
제8항에 있어서,
상기 참조 픽처 리스트 0은 상기 제1 참조 픽처, 상기 제2 참조 픽처, 및 상기 현재 픽처를 순차적으로 할당함으로써 생성되고,
상기 참조 픽처 리스트 1은 상기 제2 참조 픽처, 상기 제1 참조 픽처, 및 상기 현재 픽처를 순차적으로 할당함으로써 생성되는 것을 특징으로 하는, 영상 복호화 방법.
According to claim 8,
The reference picture list 0 is generated by sequentially allocating the first reference picture, the second reference picture, and the current picture,
The reference picture list 1 is characterized in that it is generated by sequentially allocating the second reference picture, the first reference picture, and the current picture.
제8항에 있어서,
상기 현재 픽처 참조 정보는 픽처 단위 또는 시퀀스 단위로 전송되는 것을 특징으로 하는, 영상 복호화 방법.
According to claim 8,
The video decoding method, characterized in that the current picture reference information is transmitted in units of pictures or sequences.
영상 부호화 방법에 있어서,
현재 블록에 대한 참조 픽처 리스트 0 및 참조 픽처 리스트 1을 생성하는 단계, 현재 픽처에 기초한 블록 매칭 예측이 상기 현재 픽처에 허용되는지 여부에 따라, 상기 현재 픽처는 상기 참조 픽처 리스트 0 및 상기 참조 픽처 리스트 1에 할당됨;
상기 참조 픽처 리스트 0 및 상기 참조 픽처 리스트 1에 기초하여, 상기 현재 블록에 대한 참조 픽처를 결정하는 단계;
상기 참조 픽처를 이용하여 상기 현재 블록에 대한 예측을 수행하는 단계; 및
상기 현재 픽처에 기초한 블록 매칭 예측이 상기 현재 픽처에 허용되는지 여부를 나타내는 현재 픽처 참조 정보를 부호화하는 단계를 포함하고,
상기 현재 픽처는 제1 참조 픽처가 상기 참조 픽처 리스트 0 에 할당된 후, 상기 참조 픽처 리스트 0에 할당되고,
상기 제1 참조 픽처는 상기 현재 픽처 이전에 표시되고,
상기 현재 픽처는 제2 참조 픽처가 상기 참조 픽처 리스트 1 에 할당된 후, 상기 참조 픽처 리스트 1에 할당되고,
상기 제2 참조 픽처는 상기 현재 픽처 이후에 표시되는 것을 특징으로 하는, 영상 부호화 방법.
In the video encoding method,
Generating reference picture list 0 and reference picture list 1 for the current block, according to whether block matching prediction based on the current picture is allowed for the current picture, the current picture is the reference picture list 0 and the reference picture list assigned to 1;
determining a reference picture for the current block based on the reference picture list 0 and the reference picture list 1;
performing prediction on the current block using the reference picture; and
Encoding current picture reference information indicating whether block matching prediction based on the current picture is allowed for the current picture,
The current picture is assigned to the reference picture list 0 after a first reference picture is assigned to the reference picture list 0;
The first reference picture is displayed before the current picture,
The current picture is assigned to reference picture list 1 after a second reference picture is assigned to reference picture list 1;
Wherein the second reference picture is displayed after the current picture.
영상 부호화 방법에 의하여 부호화된 비트스트림을 저장한 컴퓨터로 판독가능한 기록 매체에 있어영상 부호화 방법에 의하여 부호화된 비트스트림을 저장한 컴퓨터로 판독가능한 기록 매체에 있어서, 상기 영상 부호화 방법은 있어서,
현재 블록에 대한 참조 픽처 리스트 0 및 참조 픽처 리스트 1을 생성하는 단계, 현재 픽처에 기초한 블록 매칭 예측이 상기 현재 픽처에 허용되는지 여부에 따라, 상기 현재 픽처는 상기 참조 픽처 리스트 0 및 상기 참조 픽처 리스트 1에 할당됨;
상기 참조 픽처 리스트 0 및 상기 참조 픽처 리스트 1에 기초하여, 상기 현재 블록에 대한 참조 픽처를 결정하는 단계;
상기 참조 픽처를 이용하여 상기 현재 블록에 대한 예측을 수행하는 단계; 및
상기 현재 픽처에 기초한 블록 매칭 예측이 상기 현재 픽처에 허용되는지 여부를 나타내는 현재 픽처 참조 정보를 부호화하는 단계를 포함하고,
상기 현재 픽처는 제1 참조 픽처가 상기 참조 픽처 리스트 0 에 할당된 후, 상기 참조 픽처 리스트 0에 할당되고,
상기 제1 참조 픽처는 상기 현재 픽처 이전에 표시되고,
상기 현재 픽처는 제2 참조 픽처가 상기 참조 픽처 리스트 1 에 할당된 후, 상기 참조 픽처 리스트 1에 할당되고,
상기 제2 참조 픽처는 상기 현재 픽처 이후에 표시되는 것을 특징으로 하는, 컴퓨터로 판독가능한 기록 매체.
In a computer-readable recording medium storing a bitstream encoded by an image encoding method in a computer-readable recording medium storing a bitstream encoded by an image encoding method, the image encoding method comprises:
Generating reference picture list 0 and reference picture list 1 for the current block, according to whether block matching prediction based on the current picture is allowed for the current picture, the current picture is the reference picture list 0 and the reference picture list assigned to 1;
determining a reference picture for the current block based on the reference picture list 0 and the reference picture list 1;
performing prediction on the current block using the reference picture; and
Encoding current picture reference information indicating whether block matching prediction based on the current picture is allowed for the current picture,
The current picture is assigned to the reference picture list 0 after a first reference picture is assigned to the reference picture list 0;
The first reference picture is displayed before the current picture,
The current picture is assigned to reference picture list 1 after a second reference picture is assigned to reference picture list 1;
The second reference picture is displayed after the current picture, computer-readable recording medium.
KR1020190037713A 2015-06-05 2019-04-01 Method and apparatus of image encoding/decoding using reference pixel composition in intra prediction KR102476541B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR20150079878 2015-06-05
KR1020150079878 2015-06-05
KR1020180064903A KR101966195B1 (en) 2015-06-05 2018-06-05 Method and apparatus of image encoding/decoding using reference pixel composition in intra prediction

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020180064903A Division KR101966195B1 (en) 2015-06-05 2018-06-05 Method and apparatus of image encoding/decoding using reference pixel composition in intra prediction

Publications (2)

Publication Number Publication Date
KR20190038530A KR20190038530A (en) 2019-04-08
KR102476541B1 true KR102476541B1 (en) 2022-12-13

Family

ID=57575556

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020160070468A KR101866973B1 (en) 2015-06-05 2016-06-07 Method and apparatus of image encoding/decoding using reference pixel composition in intra prediction
KR1020180064903A KR101966195B1 (en) 2015-06-05 2018-06-05 Method and apparatus of image encoding/decoding using reference pixel composition in intra prediction
KR1020190037713A KR102476541B1 (en) 2015-06-05 2019-04-01 Method and apparatus of image encoding/decoding using reference pixel composition in intra prediction

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020160070468A KR101866973B1 (en) 2015-06-05 2016-06-07 Method and apparatus of image encoding/decoding using reference pixel composition in intra prediction
KR1020180064903A KR101966195B1 (en) 2015-06-05 2018-06-05 Method and apparatus of image encoding/decoding using reference pixel composition in intra prediction

Country Status (1)

Country Link
KR (3) KR101866973B1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018131830A1 (en) * 2017-01-11 2018-07-19 주식회사 케이티 Video signal processing method and device
WO2018212582A1 (en) * 2017-05-18 2018-11-22 에스케이텔레콤 주식회사 Intra prediction encoding or decoding method and device
CN116866565A (en) * 2018-03-21 2023-10-10 Lx 半导体科技有限公司 Image encoding/decoding method, storage medium, and image data transmission method
US20230103665A1 (en) * 2019-02-28 2023-04-06 Samsung Electronics Co., Ltd Apparatuses for encoding and decoding image, and methods for encoding and decoding image thereby
CN114073091A (en) * 2019-06-21 2022-02-18 三星电子株式会社 Video encoding method and apparatus, and video decoding method and apparatus

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013009896A1 (en) 2011-07-12 2013-01-17 Huawei Technologies Co. Ltd. Pixel-based intra prediction for coding in hevc

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120070479A (en) * 2010-12-21 2012-06-29 한국전자통신연구원 Method and apparatus for encoding and decoding of intra prediction mode information
US20120314767A1 (en) * 2011-06-13 2012-12-13 Qualcomm Incorporated Border pixel padding for intra prediction in video coding
US20150036743A1 (en) * 2012-02-02 2015-02-05 Electronics And Telecommunications Research Institute Interlayer prediction method and device for image signal

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013009896A1 (en) 2011-07-12 2013-01-17 Huawei Technologies Co. Ltd. Pixel-based intra prediction for coding in hevc

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Viktor W., "Constrained Intra Prediction Scheme for Flexible-Sized Prediction Units in HEVC, JCTVC-D094,2011.1.14.

Also Published As

Publication number Publication date
KR20190038530A (en) 2019-04-08
KR101866973B1 (en) 2018-06-12
KR101966195B1 (en) 2019-04-05
KR20160143586A (en) 2016-12-14
KR20180063033A (en) 2018-06-11

Similar Documents

Publication Publication Date Title
US11368675B2 (en) Method and device for encoding and decoding intra-frame prediction
KR101988888B1 (en) Method and apparartus for encoding/decoding for intra prediction mode
KR102558270B1 (en) Method and apparatus of image encoding/decoding using adaptive deblocking filtering
KR102476541B1 (en) Method and apparatus of image encoding/decoding using reference pixel composition in intra prediction
KR102462012B1 (en) Image encoding/decoding method and image decoding apparatus using motion vector precision
KR102558269B1 (en) Image encoding method and image decoding method and apparatus using adaptive deblocking filtering
KR102514392B1 (en) Image encoding/decoding method and image decoding apparatus using motion vector precision
KR102476230B1 (en) Image encoding/decoding method and image decoding apparatus using motion vector precision

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right