KR20170126817A - Fast video encoding method and apparatus for the same - Google Patents
Fast video encoding method and apparatus for the same Download PDFInfo
- Publication number
- KR20170126817A KR20170126817A KR1020170058195A KR20170058195A KR20170126817A KR 20170126817 A KR20170126817 A KR 20170126817A KR 1020170058195 A KR1020170058195 A KR 1020170058195A KR 20170058195 A KR20170058195 A KR 20170058195A KR 20170126817 A KR20170126817 A KR 20170126817A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- prediction
- current block
- reference block
- measuring
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
본 발명은 고속 영상 부호화 방법 및 장치에 관한 것으로, 더욱 상세하게는 영상 부호화 과정에서, 부호화 복잡도를 크게 증가시키는 양방향 예측을 생략함으로써 영상을 고속으로 부호화하는 방법 및 장치에 관한 것이다.The present invention relates to a high-speed image coding method and apparatus, and more particularly, to a method and apparatus for high-speed image coding by omitting bi-directional prediction which greatly increases coding complexity in an image coding process.
H.265로도 불리는 고효율 비디오 코딩(HEVC, High Efficiency Video Coding)은 H.264/MPEG-4 AVC의 성공에 힘입어 개발에 착수한 차세대 동영상 부호화 기술이다. 기존에 H.264/MPEG-4 AVC를 개발했던 ISO/IEC MPEG과 ITU-T의 영상 부호화 전문가 그룹(Video Coding Experts Group)이 Joint Collaborative Team on Video Coding (JCT-VC)으로서 팀을 결성하여 표준화 작업을 진행하였고, ITU는 스위스 제네바에서 HEVC를 차세대 최종 표준안으로 승인하였다.High Efficiency Video Coding (HEVC), also referred to as H.265, is the next generation of video coding technology that has begun development due to the success of H.264 / MPEG-4 AVC. ISO / IEC MPEG, which developed H.264 / MPEG-4 AVC, and Video Coding Experts Group of ITU-T formed a team as Joint Collaborative Team on Video Coding (JCT-VC) And ITU has approved HEVC as the next generation final standard in Geneva, Switzerland.
HEVC는 높은 부호화 효율을 달성하기 위하여, 블록 구조를 최소 4×4 단위부터 64×64까지 지원하고, 화면 내 예측 모드에서도 35개의 방향성 및 비방향성 모드를 지원하는 등 추가적인 기술을 적용하였으나, 이와 동시에 계산 복잡도가 크게 증가하였다. 계산 복잡도의 증가는 부호화 장치에 큰 부하를 가져오기 때문에 HEVC의 보급에 큰 걸림돌이 되고 있다.In order to achieve high coding efficiency, HEVC has applied additional techniques such as supporting a block structure from a minimum of 4 × 4 units to 64 × 64 and supporting 35 directional and non-directional modes in the intra prediction mode, The computational complexity has greatly increased. The increase in computational complexity places a heavy load on the encoding device, which is a major obstacle to the spread of HEVC.
특히, 영상 부호화에서 계산 복잡도에 큰 영향을 미치는 과정 중 하나가 움직임 추정(Motion Estimation, ME)인데, 움직임 추정은 최대 두개의 참조 픽쳐를 사용하는 양방향 예측과 하나의 참조 픽쳐만을 사용하는 단방향 예측을 포함한다.In particular, motion estimation (ME) is one of the processes that greatly affect computational complexity in image coding. In motion estimation, bidirectional prediction using a maximum of two reference pictures and unidirectional prediction using only one reference picture .
기존의 고속 영상 부호화 방법은 주로 단방향 예측에서 일부 예측 과정을 생략하는 방법을 적용하였으며, 계산 복잡도가 큰 양방향 예측의 속도를 향상시킬 수 있는 방법은 연구가 미진한 상태이다.The existing high - speed image coding method mainly omits some prediction processes in unidirectional prediction, and a method of improving the speed of bidirectional prediction having a large computational complexity is not studied.
양방향 예측에서 계산 복잡도를 감소시키는 기존의 일부 연구의 경우에도 다른 예측 모드(단방향 또는 머지 모드)의 왜곡 비용을 이용하거나, 부호화 유닛 사이의 연관성을 이용하여 일부 과정만을 생략하고 있어, 계산 복잡도 감소에 기여하는 효과가 크지 않다. 따라서, 경우에 따라 양방향 예측 전체를 생략함으로써, 계산 복잡도를 크게 줄일 수 있는 방법이 필요한 실정이다.In some existing studies that reduce the computational complexity in bi-directional prediction, the distortion cost of the other prediction mode (unidirectional or merge mode) is used, or only a part of the process is omitted using the association between encoding units. The effect of contributing is not large. Therefore, there is a need for a method capable of greatly reducing the computational complexity by omitting the entire bi-directional prediction in some cases.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 고속 영상 부호화 방법을 제공하는 데 있다.In order to solve the above problems, an object of the present invention is to provide a high-speed image coding method.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 고속 영상 부호화 장치를 제공하는 데 있다.It is another object of the present invention to provide a high-speed image encoding apparatus.
상기 목적을 달성하기 위한 본 발명의 일 측면은, 고속 영상 부호화 장치에서의 고속 영상 부호화 방법을 제공한다.According to one aspect of the present invention, there is provided a high-speed image encoding method in a high-speed image encoding apparatus.
여기서, 고속 영상 부호화 방법은, 부호화할 현재 블록에 대한 단방향 예측을 수행하는 단계, 단방향 예측에서 도출된 움직임 벡터(motion vector) 또는 움직임 벡터의 차분값(motion vector difference)이 정수 화소 단위인지 판단하는 단계 및 정수 화소 단위이면, 양방향 예측을 제외하고, 단방향 예측을 포함하는 예측 모드 중에서, 현재 블록에 대한 예측 모드를 선정하는 단계를 포함할 수 있다.Here, the high-speed image coding method may include performing unidirectional prediction on a current block to be coded, determining whether a motion vector or a motion vector difference derived from unidirectional prediction is an integer pixel unit And a step of selecting a prediction mode for a current block among the prediction modes including unidirectional prediction, except for bidirectional prediction, if the prediction mode is an integer pixel unit.
여기서, 단방향 예측을 수행하는 단계는, 참조 픽쳐에서 현재 블록의 위치 주변에 위치한 블록의 움직임 정보를 사용하여 초기 탐색 시작 위치를 결정하는 단계, 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 현재 블록 사이의 상관도를 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계 및 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 현재 블록 사이의 상관도를 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계를 포함할 수 있다.The step of performing unidirectional prediction includes the steps of determining an initial search start position using motion information of a block located around a position of a current block in a reference picture, Obtaining a first reference block by measuring the correlation between the reference block and the current block based on the initial search start position and measuring the correlation between the neighboring reference block and the current block on a subpixel basis, And a step of acquiring.
여기서, 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계는, 현재 블록과 참조 블록의 SAD(Sum of Absolte Difference)를 측정하는 단계를 포함할 수 있다.Here, the step of acquiring the first reference block by measuring in units of integer pixels may include measuring a sum of absolute difference (SAD) between the current block and the reference block.
여기서, 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계는, 현재 블록과 참조 블록의 SATD(Sum of Transform Difference)를 측정하는 단계를 포함할 수 있다.Here, the step of measuring the sub-pixel and obtaining the second reference block may include measuring a Sum of Transform Difference (SATD) between the current block and the reference block.
여기서, 부화소 단위는, 1/2 부화소 단위 및 1/4 부화소 단위 중 적어도 하나를 포함할 수 있다.Here, the subpixel unit may include at least one of a 1/2 subpixel unit and a 1/4 subpixel unit.
여기서, 단방향 예측을 수행하는 단계는, 제1 참조 블록과 제2 참조 블록을 비교하여 최적의 율-왜곡 비용을 갖는 블록을 현재 블록에 대한 예측 블록으로 선정하여 움직임 벡터 또는 움직임 벡터 차분값 중 적어도 하나를 포함하는 움직임 정보를 생성할 수 있다.Herein, the performing the unidirectional prediction may include: selecting a block having an optimal rate-distortion cost as a prediction block for the current block by comparing the first reference block and the second reference block, It is possible to generate motion information including one.
여기서, 현재 블록은, 화소 단위의 2N×2N, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 블록 크기 중 적어도 하나를 포함할 수 있다.Here, the current block may include at least one of 2N × 2N, 2N × N, N × 2N, N × N, 2N × nU, 2N × nD, nL × 2N and nR × 2N block sizes .
상기 목적을 달성하기 위한 본 발명의 다른 측면은, 고속 영상 부호화 장치에서의 고속 영상 부호화 방법을 제공한다.According to another aspect of the present invention, there is provided a high-speed image encoding method in a high-speed image encoding apparatus.
여기서, 고속 영상 부호화 방법은 화소 단위로 2N×2N의 블록 크기를 갖는 현재 블록에 대하여 단방향 예측 및 양방향 예측을 포함하는 예측 모드 중 하나를 선정하는 단계, 선정된 예측 모드가 양방향 예측이 아니면, 양방향 예측을 제외한 나머지 예측 모드 중에서 현재 블록과 다른 크기의 블록에 대한 예측 모드를 선정하는 단계를 포함할 수 있다.Here, the high-speed image coding method may include selecting one of prediction modes including unidirectional prediction and bidirectional prediction for a current block having a block size of 2Nx2N on a pixel-by-pixel basis, and if the selected prediction mode is not bidirectional prediction, And selecting a prediction mode for a block having a size different from that of the current block from prediction modes other than prediction.
여기서, 예측 모드를 선정하는 단계는, 현재 블록과 참조 픽쳐의 참조 블록 사이의 상관성이 가장 높은 참조 블록을 갖는 예측 모드를 선정할 수 있다.Here, in the step of selecting the prediction mode, a prediction mode having a reference block with the highest correlation between the current block and the reference block of the reference picture can be selected.
여기서, 현재 블록과 다른 크기의 블록은, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 중 적어도 하나의 크기를 가질 수 있다.Here, the block having a size different from that of the current block may have at least one size of 2N × N, N × 2N, N × N, 2N × nU, 2N × nD, nL × 2N, and nR × 2N.
목적을 달성하기 위한 본 발명의 다른 측면은, 고속 영상 부호화 장치를 제공한다.According to another aspect of the present invention, there is provided a high-speed image encoding apparatus.
여기서, 고속 영상 부호화 장치는 적어도 하나의 프로세서 및 적어도 하나의 프로세서가 적어도 하나의 단계를 수행하도록 지시하는 명령어들을 저장하는 메모리를 포함할 수 있다.Here, the high-speed image encoding apparatus may include at least one processor and a memory storing instructions for instructing the at least one processor to perform at least one step.
여기서, 적어도 하나의 단계는, 부호화할 현재 블록에 대한 단방향 예측을 수행하는 단계, 단방향 예측에서 도출된 움직임 벡터(motion vector) 또는 움직임 벡터의 차분값(motion vector difference)이 정수 화소 단위인지 판단하는 단계 및 정수 화소 단위이면, 양방향 예측을 제외하고, 단방향 예측을 포함하는 화면 간 예측 모드 중에서, 현재 블록에 대한 예측 모드를 선정하는 단계를 포함할 수 있다.Here, at least one step may include performing unidirectional prediction on a current block to be coded, determining whether a motion vector or a motion vector difference derived from the unidirectional prediction is an integer pixel unit And selecting the prediction mode for the current block from among the inter-picture prediction modes including unidirectional prediction, except for bidirectional prediction, if the prediction mode is an integer pixel unit.
여기서, 단방향 예측을 수행하는 단계는, 참조 픽쳐에서 현재 블록의 위치 주변에 위치한 블록의 움직임 정보를 사용하여 초기 탐색 시작 위치를 결정하는 단계, 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 현재 블록 사이의 상관도를 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계 및 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 현재 블록 사이의 상관도를 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계를 포함할 수 있다.The step of performing unidirectional prediction includes the steps of determining an initial search start position using motion information of a block located around a position of a current block in a reference picture, Obtaining a first reference block by measuring the correlation between the reference block and the current block based on the initial search start position and measuring the correlation between the neighboring reference block and the current block on a subpixel basis, And a step of acquiring.
여기서, 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계는, 현재 블록과 참조 블록의 SAD(Sum of Absolte Difference)를 측정하는 단계를 포함할 수 있다.Here, the step of acquiring the first reference block by measuring in units of integer pixels may include measuring a sum of absolute difference (SAD) between the current block and the reference block.
여기서, 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계는, 현재 블록과 참조 블록의 SATD(Sum of Transform Difference)를 측정하는 단계를 포함할 수 있다.Here, the step of measuring the sub-pixel and obtaining the second reference block may include measuring a Sum of Transform Difference (SATD) between the current block and the reference block.
여기서, 부화소 단위는, 1/2 부화소 단위 및 1/4 부화소 단위 중 적어도 하나를 포함할 수 있다.Here, the subpixel unit may include at least one of a 1/2 subpixel unit and a 1/4 subpixel unit.
여기서, 단방향 예측을 수행하는 단계는, 제1 참조 블록과 제2 참조 블록을 비교하여 최적의 율-왜곡 비용을 갖는 블록을 현재 블록에 대한 예측 블록으로 선정하여 움직임 벡터 또는 움직임 벡터 차분값 중 적어도 하나를 포함하는 움직임 정보를 생성할 수 있다.Herein, the performing the unidirectional prediction may include: selecting a block having an optimal rate-distortion cost as a prediction block for the current block by comparing the first reference block and the second reference block, It is possible to generate motion information including one.
여기서, 현재 블록은, 화소 단위의 2N×2N, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 블록 크기 중 적어도 하나를 포함할 수 있다.Here, the current block may include at least one of 2N × 2N, 2N × N, N × 2N, N × N, 2N × nU, 2N × nD, nL × 2N and nR × 2N block sizes .
여기서, 적어도 하나의 단계는, 현재 블록이 화소 단위로 2N×2N의 블록 크기를 갖고, 양방향 예측을 제외한 예측 모드 중에서 현재 블록의 예측 모드가 선정된 경우, 양방향 예측을 제외한 나머지 예측 모드 중에서 현재 블록과 다른 크기의 블록에 대한 예측 모드를 선정하는 단계를 더 포함할 수 있다.Here, at least one of the prediction modes is a step of, if the current block has a block size of 2N x 2N on a pixel basis and the prediction mode of the current block is selected from among the prediction modes excluding bidirectional prediction, And selecting a prediction mode for a block of a different size from the prediction mode.
여기서, 예측 모드를 선정하는 단계는, 현재 블록과 참조 픽쳐의 참조 블록 사이의 상관성이 가장 높은 참조 블록을 갖는 예측 모드를 선정할 수 있다.Here, in the step of selecting the prediction mode, a prediction mode having a reference block with the highest correlation between the current block and the reference block of the reference picture can be selected.
여기서, 현재 블록과 다른 크기의 블록은, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 중 적어도 하나의 크기를 가질 수 있다.Here, the block having a size different from that of the current block may have at least one size of 2N × N, N × 2N, N × N, 2N × nU, 2N × nD, nL × 2N, and nR × 2N.
상기와 같은 본 발명에 따른 고속 영상 부호화 방법 및 장치를 이용할 경우에는 영상 부호화 장치의 연산 복잡도를 감소시킬 수 있다.When the high-speed image encoding method and apparatus according to the present invention as described above is used, the computational complexity of the image encoding apparatus can be reduced.
또한, 부호화 속도를 향상시킬 수 있는 장점이 있다.In addition, there is an advantage that the coding rate can be improved.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.
도 3은 본 발명의 일 실시예에 따른, 영상 복호화 장치(30)에 대한 구성도이다.
도 4는 HEVC에서의 예측 유닛을 설명하기 위한 예시도이다.
도 5는 HEVC에서의 참조 소프트웨어에 따른 부호화 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 고속 영상 부호화 방법에 대한 제1 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 고속 영상 부호화 방법에 대한 제2 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 고속 영상 부호화 장치에 대한 구성도이다.1 is a conceptual diagram of an image encoding and decoding system according to an embodiment of the present invention.
2 is a block diagram of an image encoding apparatus according to an embodiment of the present invention.
3 is a configuration diagram of an
4 is an exemplary diagram for explaining a prediction unit in the HEVC.
5 is a flowchart for explaining a coding method according to reference software in HEVC.
6 is a first flowchart of a high-speed image coding method according to an embodiment of the present invention.
7 is a second flowchart of a high-speed image encoding method according to an embodiment of the present invention.
8 is a block diagram of a high-speed image encoding apparatus according to an embodiment of the present invention.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. The terms first, second, A, B, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.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 this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.
통상적으로 동영상은 일련의 픽쳐(Picture)로 구성될 수 있으며, 픽쳐(picture)라는 용어는 영상(image) 또는 프레임(frame)과 동등한 의미를 갖는 다른 용어로 대치되어 사용될 수 있다.A moving picture may be composed of a series of pictures and the term picture may be replaced with another term having an equivalent meaning to an image or a frame.
또한, 각 픽쳐(또는 프레임)는 소정의 영역으로 분할될 수 있다. 여기서, 분할된 영역은 블록(Block) 또는 매크로 블록(Macro Block)으로 지칭될 수 있으나, 부호화 트리 유닛(Coding Tree Unit, CTU), 부호화 유닛(Coding Unit, CU), 예측 유닛(Prediction Unit, PU), 변환 유닛(Transform Unit, TU)과 같이 다양한 크기 또는 용어로 지칭될 수 있다. 따라서, 본 명세서 전체에 걸쳐 사용된 블록(Block)의 의미는 상기의 용어를 모두 포함할 수 있는 것으로 이해되어야 한다.Further, each picture (or frame) can be divided into predetermined areas. Here, the divided area may be referred to as a block or a macro block, but it may be a coding tree unit (CTU), a coding unit (CU), a prediction unit (PU) ), A transform unit (TU), and the like. Accordingly, it is to be understood that the meaning of the blocks used throughout this specification may include all of the above terms.
여기서, 부호화 유닛은 화면 내 예측 또는 화면 간 예측을 수행하는 기본 단위를 의미할 수 있고, 예측 유닛은 예측의 기본 단위로서 부호화 유닛을 분할하여 생성될 수 있으며, 하나의 예측 유닛은 특정한 예측 모드를 가질 수 있다. 변환 유닛은 부호화 유닛을 분할하여 생성될 수 있고, 원 영상 블록과 예측 유닛에서 생성된 예측 블록과의 차분값으로 생성된 잔차 블록을 변환하는 기본 단위일 수 있다.Here, the encoding unit may mean a basic unit for performing intra-picture prediction or inter-picture prediction, and the prediction unit may be generated by dividing an encoding unit as a basic unit of prediction, and one prediction unit may generate a specific prediction mode Lt; / RTI > The conversion unit may be generated by dividing the encoding unit and may be a basic unit for converting a residual block generated as a difference value between the original image block and the prediction block generated in the prediction unit.
또한, 상기 분할된 영역은 다시 수개의 픽셀(Pixel) 또는 화소로 구성될 수 있다. 예를 들면, 부호화 트리 유닛은 픽셀 단위로 64×64, 32×32, 16×16 중 하나의 크기를 가질 수 있다.In addition, the divided area may be composed of several pixels or pixels again. For example, the encoding tree unit may have a size of one of 64 x 64, 32 x 32, and 16 x 16 in units of pixels.
부호화 트리 유닛에서 쿼드 트리(Quad-tree) 형태로 분할될 수 있는데, 이때 분할된 블록은 부호화 유닛(Coding Unit)으로 지칭될 수 있으며, 이러한 분할은 재귀적으로 이루어질 수 있고, 모든 부호화 유닛이 동일한 형태로 분할될 필요는 없다. 다만, 부호화 유닛은 최대 크기 및 최소 크기에 제한이 있을 수 있는데, 가장 큰 크기의 부호화 유닛을 최대 부호화 유닛(Largest Coding Unit, LCU), 가장 작은 크기의 부호화 유닛을 최소 부호화 유닛(Smallest Coding Unit, SCU)으로 지칭할 수 있다. In a coding tree unit, a block may be divided into a quad-tree type, in which the divided blocks may be referred to as a coding unit, and this division may be recursively performed, It does not need to be divided into the form. However, the encoding unit may have a maximum size and a minimum size. The encoding unit of the largest size may be referred to as a maximum encoding unit (LCU), the encoding unit of the smallest size may be referred to as a minimum encoding unit SCU).
여기서, 최대 부호화 유닛으로부터 분할된 횟수 또는 정도를 표현하는 지표로 깊이 또는 심도(depth)를 사용할 수 있다. 예를 들어, 최대 부호화 유닛(LCU)과 같은 크기를 가진다면 깊이는 0으로 표현할 수 있고, 쿼드 트리로 분할됨에 따라 깊이가 하나씩 증가할 수 있으며, 최소 부호화 유닛과 같은 크기까지 분할되었다면 그때의 깊이를 최대 깊이(Max depth)로 표현할 수 있다.Here, depth or depth can be used as an index representing the number or degree of division from the maximum encoding unit. For example, if the size is the same as the maximum encoding unit (LCU), the depth can be expressed as 0, and the depth can be increased by one as divided into a quad tree. If divided to the same size as the minimum encoding unit, Can be expressed as a maximum depth (Max depth).
여기서, 각각의 부호화 유닛(CU)에서 다시 예측 유닛(PU)으로 분할될 수 있는데, 예측 유닛은 쿼드-트리 형태로 분할되지 않고 비대칭구조로 분할될 수 있으며, 부호화 유닛에서 한번만 분할될 수 있다. 또한 화면 간 예측 및 화면 내 예측에 따라 미리 설정된 형태를 가질 수 있다. 예를 들어, 화면 내 예측에서는 2N×2N 또는 N×N의 크기를 가질 수 있다.Here, each coding unit (CU) can be further divided into prediction units (PU). The prediction units can be divided into asymmetric structures without being divided into a quad-tree form, and can be divided only once in the coding unit. And may have a predetermined form according to inter-picture prediction and intra-picture prediction. For example, intra prediction may have a size of 2N x 2N or N x N.
또한, 각각의 부호화 유닛(CU)에서 다시 변환 유닛(TU)으로 분할될 수 있는데, 이때 변환 유닛은 쿼드 트리 구조를 바탕으로 재귀적으로 분할될 수 있고 부호화 유닛과 마찬가지로 최대 및 최소 크기를 가질 수 있으며 그에 따른 깊이(depth)로 표현될 수 있다.In addition, each coding unit (CU) can be divided again into a conversion unit (TU), where the conversion unit can be recursively partitioned on the basis of a quadtree structure and can have maximum and minimum sizes And can be represented by a corresponding depth.
상기의 부호화 유닛에서 예측 유닛 또는 변환 유닛으로의 분할은 독립적으로 이루어질 수 있으나, 제약이 있을 수 있다. 예를 들어, 부호화 유닛의 부호화 모드가 화면 내 예측인 경우에는 해당 부호화 유닛으로부터 분할된 변환 유닛이 해당 부호화 유닛으로부터 분할된 예측 유닛의 크기보다 크지 않을 수 있다. The division from the encoding unit into the prediction unit or the conversion unit may be performed independently, but there may be restrictions. For example, when the encoding mode of the encoding unit is intra-picture prediction, the conversion unit divided from the encoding unit may not be larger than the size of the prediction unit divided from the encoding unit.
각 유닛(Unit)은 하나의 휘도 블록과 두 개의 색차 블록으로 구성될 수 있으며, 이는 컬러 포맷에 따라 달리 구성될 수 있다. 또한, 컬러 포맷에 따라 휘도 블록과 색차 블록의 크기가 결정될 수 있다. 예를 들어, 4:2:0인 경우 색차 블록의 크기는 휘도 블록의 가로, 세로가 1/2인 길이를 가질 수 있다. Each unit may consist of one luminance block and two color difference blocks, which may be otherwise configured according to the color format. Further, the size of the luminance block and the color difference block can be determined according to the color format. For example, in the case of 4: 2: 0, the size of the color difference block may have a length of 1/2 of the luminance block.
상기의 유닛 또는 블록 단위에 대해서는 기존의 HEVC 또는 H.264/AVC 등의 용어를 참조할 수 있다. 본 발명에서는 블록과 상기 용어들이 혼용하여 사용될 수 있으며, 표준 기술에 따라 달리 이해될 수 있고, 그러한 표준 기술에 따른 부호화 및 복호화 과정에 상응하는 용어 또는 단위로 이해되어야 한다.Conventional HEVC or H.264 / AVC terms can be referred to for the above unit or block unit. In the present invention, blocks and the terms may be used interchangeably and understood differently according to the standard technique, and they should be understood as terms or units corresponding to the encoding and decoding processes according to such standard techniques.
또한, 현재 블록 또는 현재 화소를 부호화하거나 복호화하는데 참조되는 픽쳐, 블록 또는 화소를 참조 픽쳐(Reference Picture), 참조 블록(Reference Block) 또는 참조 화소(Reference Pixel)라고 지칭할 수 있다. 이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.A reference picture, a reference block, or a reference pixel may be referred to as a reference picture, a block, or a pixel that is referred to in encoding or decoding a current block or a current pixel. Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.1 is a conceptual diagram of an image encoding and decoding system according to an embodiment of the present invention.
도 1을 참조하면, 영상 부호화 장치(105) 및 복호화 장치(100)는 개인용 컴퓨터(PC:Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 무선 통신 단말기(Wireless Communication Terminal), 스마트폰(Smart Phone), TV 등과 같은 사용자 단말기이거나 응용 서버와 서비스 서버 등 서버 단말기일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화 또는 복호화를 위해 인터 또는 인트라 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리(memory, 120, 125), 프로그램을 실행하여 연산 및 제어하기 위한 프로세서(processor, 110, 115) 등을 구비하는 다양한 장치를 포함할 수 있다. 또한, 영상 부호화 장치(105)에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망(Network) 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등과 같은 다양한 통신 인터페이스를 통해 영상 복호화 장치(100)로 전송되어 영상 복호화 장치(100)에서 복호화되어 영상으로 복원되고 재생될 수 있다. 또한, 영상 부호화 장치(105)에 의해 비트스트림으로 부호화된 영상은 컴퓨터 판독 가능한 기록 매체를 통하여 영상 부호화 장치(105)에서 영상 복호화 장치(100)로 전달될 수 있다.1, the
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.2 is a block diagram of an image encoding apparatus according to an embodiment of the present invention.
본 실시예에 따른 영상 부호화 장치(20)는, 도 2에 나타낸 바와 같이, 예측부(200), 감산부(205), 변환부(210), 양자화부(215), 역양자화부(220), 역변환부(225), 가산부(230), 필터부(235), 복호화 픽쳐 버퍼(240) 및 엔트로피 부호화부(245)를 포함할 수 있다.2, the
예측부(200)는 부호화할 블록에 대하여, 화면 내 예측 또는 화면 간 예측을 통하여 예측 블록을 결정할 수 있다. 여기서, 예측 블록은 픽셀 차이의 관점에서, 부호화할 블록과 가깝게 일치하는 것으로 이해되는 블록이며, SAD(sum of absolute difference), SSD(sum of square difference) 를 포함하는 다양한 방법으로 결정될 수 있다. 또한, 이때 영상 슬라이스의 블록들을 복호화시에 필요한 각종 정보를 지시하는 구문(syntax)들을 생성할 수 있다.The
감산부(205)는 부호화할 현재 블록의 픽셀 값으로부터 예측 블록의 픽셀 값들을 감산하여 픽셀 차이 값들을 도출함으로써, 잔여(residue) 영상 블록을 생성할 수 있다.The
변환부(210)는 하마다드 변환, 이산 코사인 변환 등과 같은 공간 영역의 신호를 주파수 영역의 신호로 변환하는 다양한 방법을 이용하여, 감산부(205)로부터 받은 잔여 영상 블록을 잔여 변환 계수 값들을 포함하는 영상 블록을 생성할 수 있다. 즉, 잔여 영상 블록을 픽셀 값 신호에서 주파수 영역 신호로 변환할 수 있다. The transforming
양자화부(215)는 비트레이트를 감소시키기 위해 변환부(210)에서 변환된 변환 계수들을 양자화할 수 있다. 양자화를 통해 그 계수들의 일부 또는 모두와 연관되는 비트 심도 또는 비트량을 감소시킬 수 있다. 양자화 정도에 따른 양자화 에러는 양자화 파라미터(Quantization Parameter, QP)를 조정하여 변경될 수 있다.The
양자화 기법에는 데드존 균일 경계 양자화(DZUTQ: Dead Zone Uniform Threshold Quantization), 양자화 가중치 매트릭스(Quantization weighted matrix) 또는 이를 개량한 기법을 사용할 수 있으며, 이러한 기법에 대한 구체적 설명은 본 발명의 기술분야에서 통상의 기술자가 용이하게 이해할 수 있으므로 생략한다. Dead Zone Uniform Threshold Quantization (DZUTQ), a quantization weighted matrix or an improved technique can be used for the quantization technique, and a detailed description of this technique can be found in the technical field of the present invention So that it can be easily understood by a person skilled in the art.
엔트로피 부호화부(245)는 양자화부(215)를 통해 양자화된 변환 계수들을 부호화할 수 있다. 예를 들어, 컨텐스트 적응 가변 길이 코딩(CAVLC), 컨텍스트 적응 2진 산술 코딩(CABAC), 구문 기반 컨텍스트 적응 2진 산술 코딩(SBAC), 확률 간격 파티셔닝 엔트로피(PIPE) 코딩 등의 기법을 수행할 수 있다.The
또한, 엔트로피 부호화부(245)는 양자화 계수를 부호화한 비트열을 복호화하는데 필요한 다양한 정보들을 부호화할 수 있다.In addition, the
역양자화부(220) 및 역변환부(225)는 역양자화 및 역변환을 각각 적용하여 픽셀 신호로 잔여 블록을 재구성할 수 있다. 재구성된 잔여 블록은 가산부(230)에서 예측 블록과 가산되어 복원된 영상 블록이 생성될 수 있고, 복호화 픽쳐 버퍼(240)에 저장되어 참조 블록으로서 사용될 수 있다.The
필터부(235)는 상기 복원된 영상 블록에 대하여, 필요에 따라 블로킹(blocking) 현상을 제거하기 위하여 디블로킹 필터를 적용할 수도 있고, 상기 비디오 품질을 향상시키기 위해 추가적인 루프 필터가 적용되어 필터링할 수 있다.The
도 3은 본 발명의 일 실시예에 따른, 영상 복호화 장치(30)에 대한 구성도이다.3 is a configuration diagram of an
도 3을 참조하면, 영상 복호화 장치(30)는, 부호화 픽쳐 버퍼(300), 엔트로피 복호화부(305), 예측부(310), 역양자화부(315), 역변환부(320), 가감산기(325), 필터(330), 복호화 픽쳐 버퍼(335)를 포함하여 구성될 수 있다.3, the
또한, 예측부(310)는 다시 화면 내 예측 모듈 및 화면 간 예측 모듈을 포함하여 구성될 수 있다.In addition, the
먼저, 영상 부호화 장치(20)로부터 전달된 영상 비트스트림이 수신되면, 부호화 픽쳐 버퍼(300)에 저장될 수 있다.First, when an image bitstream transmitted from the
엔트로피 복호화부(305)는 비트스트림을 복호화하여 양자화된 계수들, 움직임 벡터들 및 다른 구문(syntax)를 생성할 수 있다. 생성된 데이터는 예측부(310)로 전달될 수 있다.The
예측부(310)는 엔트로피 복호화부(305)로부터 전달된 데이터들에 기초하여 현재 영상 슬라이스의 블록에 대한 예측 블록을 생성할 수 있다. 이때, 복호화된 픽쳐 버퍼(335)에 저장된 참조 영상에 기초하여, 디폴트(default) 구성 기법을 이용한 참조 픽쳐 리스트를 구성할 수도 있다.The
역양자화부(315)는 비트스트림으로 제공되어 엔트로피 복호화부(305)에 의해 복호화된 양자화된 변환 계수들을 역양자화할 수 있다.The
역변환부(320)는 역 DCT, 역 정수 변환 또는 그와 유사한 개념의 역변환 기법들을 변환 계수에 적용하여 픽셀 신호를 갖는 잔여 블록을 생성할 수 있다.The
이때, 역양자화부(315), 역변환부(320)는 앞서 설명한 영상 부호화 장치(20)의 변환부(210) 및 양자화부(215)에서 수행한 과정을 역으로 수행하며 다양한 방법으로 구현될 수 있다. 예를 들어, 변환부(210) 및 양자화부(215)와 공유하는 동일한 과정 및 역변환을 사용할 수도 있고, 영상 부호화 장치(20)로부터 변환 및 양자화 과정에 관한 정보(예를 들면, 변환 크기, 변환 모양, 양자화 타입 등)를 이용하여 변환 및 양자화 과정을 역으로 수행할 수 있다.The
역양자화 및 역변환 과정을 거친 잔여 비디오 블록은 예측부(310)에 의해 도출된 예측 블록과 가산되어 복원된 영상 블록이 생성될 수 있다. 이러한 가산은 가감산기(325)에 의해 이루어 질 수 있다.The residual video block subjected to the inverse quantization and inverse transform process may be added to the prediction block derived by the
필터(330)는 복원된 영상 블록에 대하여, 필요에 따라 블로킹(blocking) 현상을 제거하기 위하여 디블로킹 필터를 적용할 수도 있고, 상기 복호화 과정 전 후에 다른 루프 필터들을 비디오 품질을 향상시키기 위해 추가로 사용할 수도 있다.The
복원 및 필터를 거친 영상 블록은 복호화 픽쳐 버퍼(335)에 저장될 수 있다.The reconstructed and filtered image block may be stored in the decoded
도 4는 HEVC에서의 예측 유닛을 설명하기 위한 예시도이다.4 is an exemplary diagram for explaining a prediction unit in the HEVC.
도 4를 참조하면, HEVC에서 부호화 유닛이 화면 간 예측 모드로 부호화되는 경우, 부호화 유닛으로부터 분할하여 생성되는 예측 유닛을 설명할 수 있다.Referring to FIG. 4, when a coding unit is coded in the inter picture prediction mode in the HEVC, a prediction unit generated by division from the coding unit can be described.
구체적으로, 4a 내지 4d와 같이 균등 분할될 수 있으며, 4e 내지 4h와 같이 비균등 분할 또는 AMP(Asymmetric Motion Partition)이라 불리는 형태로 분할될 수 있다.More specifically, it can be equally divided as shown in 4a to 4d, and can be divided into a nonuniform division such as 4e to 4h or a form called an AMP (Asymmetric Motion Partition).
여기서, 부호화 유닛의 크기가 2N×2N이라 할때, 4d의 N×N 형태의 블록은 부호화 유닛이 최소 크기인 경우에만 가능할 수 있으며, 4e 내지 4h와 같은 AMP는 부호화하려는 부호화 유닛이 최소 크기인 경우, 부호화 및 복호화의 복잡도를 고려하여 사용하지 않을 수도 있다.Here, when the size of the encoding unit is 2N x 2N, the N x N blocks of 4d may be possible only when the encoding unit is the minimum size, and the AMPs such as 4e to 4h may have the minimum size , It may not be used in consideration of the complexity of encoding and decoding.
여기서, 4e 내지 4h의 n은 2N의 1/4의 값을 의미할 수 있는데, 예를 들면 2N의 값이 16인 경우 n의 값은 4일 수 있다.Here, n of 4e to 4h may mean a value of 1/4 of 2N. For example, when 2N is 16, the value of n may be 4.
영상 부호화에서, 4a 내지 4h와 같이 예측 유닛의 블록 형태는 다양하게 가질 수 있다. 영상 부호화 장치는 어느 블록 형태에 따른 예측 방법이 가장 최적의 부호화 효율을 갖는지 결정할 필요가 있고, 이때, 각각의 예측 블록 형태마다 여러 예측 방법에 따른 예측을 수행함으로써, 최적의 부호화 효율을 갖는 블록 형태 및 예측 모드를 선정할 수 있다. In video encoding, block types of predictive units, such as 4a to 4h, may be various. The image coding apparatus needs to determine which block type prediction method has the most optimal coding efficiency. At this time, by performing prediction according to various prediction methods for each type of prediction block, a block type having an optimal coding efficiency And a prediction mode can be selected.
여기서, 예측 방법은 화면 간 예측(inter prediction) 및 화면 내 예측(intra prediction)을 포함할 수 있고, 화면 간 예측은 예측 방법에 따라 더 상세히 나누면 단방향 예측, 양방향 예측 및 가중 예측을 포함할 수 있다. 또한, 화면 간 예측은 움직임 정보를 표현하는 방법에 따라 머지 모드(merge mode) 및 AMVP모드를 더 포함할 수 있다. Here, the prediction method may include inter prediction and intra prediction, and inter-picture prediction may include unidirectional prediction, bidirectional prediction, and weighted prediction when divided in more detail according to the prediction method . In addition, the inter picture prediction may further include a merge mode and an AMVP mode according to a method of expressing motion information.
예측 방법 및 예측 모드는 이하에서 혼용되어 사용될 수 있으나 위에서 설명한 예측 방법 및 예측 모드를 모두 포함하는 용어로 이해되어야 하며, 머지 모드 및 AMVP 모드는 단방향 예측이나 양방향 예측에 추가적으로 적용될 수 있는 것으로 이해되어야 한다.The prediction method and the prediction mode may be used in combination, but it should be understood that the term includes both the prediction method and the prediction mode described above. It should be understood that the merge mode and the AMVP mode can be additionally applied to unidirectional prediction or bidirectional prediction .
여기서, 단방향 예측은 하나의 참조 픽쳐로부터 현재 블록과 연관성이 가장 높은 참조 블록을 선택함으로써, 현재 블록의 예측 블록을 결정할 수 있고, 양방향 예측은 최대 두 개의 참조 픽쳐를 사용하여 현재 블록의 예측 블록을 결정할 수 있다. 가중 예측은 참조 블록에 가중치와 오프셋을 적용하여 하나의 예측 블록을 생성할 수 있다. Herein, the unidirectional prediction can determine the prediction block of the current block by selecting the reference block having the highest correlation with the current block from one reference picture, and bidirectional prediction can determine the prediction block of the current block using the maximum of two reference pictures You can decide. The weighted prediction can generate one prediction block by applying a weight and an offset to the reference block.
또한, 머지 모드는 주변 블록으로부터 참조 방향, 참조 픽쳐 인덱스, 움직임 벡터 예측 값을 유도하는 기술이고, AMVP 모드는 주변 블록으로부터 움직임 벡터 예측 값만을 유도하기 위한 기술이다. The merge mode is a technique for deriving a reference direction, a reference picture index, and a motion vector prediction value from a neighboring block. The AMVP mode is a technique for deriving only a motion vector prediction value from a neighboring block.
각각의 예측 방법 및 모드에 따른 움직임 정보의 표현 및 구문 정보 생성은 본 발명이 속하는 기술분야에서 통상의 기술자에게 용이하게 이해될 수 있으므로, 상세한 설명은 생략한다. Representation of motion information and generation of syntax information according to each prediction method and mode can be easily understood by a person skilled in the art to which the present invention pertains, so a detailed description will be omitted.
도 5는 HEVC에서의 참조 소프트웨어에 따른 부호화 방법을 설명하기 위한 흐름도이다.5 is a flowchart for explaining a coding method according to reference software in HEVC.
HEVC에서의 참조 소프트웨어에 따른 부호화는 도 5의 흐름도와 같이, 부호화 유닛의 최적의 예측 방법/모드를 선정할 수 있다.As for the coding according to the reference software in the HEVC, the optimum prediction method / mode of the coding unit can be selected as shown in the flowchart of FIG.
도 5를 참조하면, 부호화 유닛(Coding Unit, CU)의 예측 방법/모드를 결정할 때, 먼저 2N×2N 블록 크기의 부호화 유닛에 대하여 머지 스킵 모드(merge skip mode 또는 Skip/merge)의 적용 여부를 결정할 수 있다. 머지 스킵 모드는 머지 모드의 특별한 경우로 양자화를 수행한 이후, 엔트로피 부호화를 위한 변환 계수가 모두 0에 가까울 때의 효율을 높이기 위하여 잔차 신호의 전송을 생략하고, 주변 블록의 선택 정보만을 전송하는 방법일 수 있다.Referring to FIG. 5, when determining a prediction method / mode of a coding unit (CU), it is first determined whether a merge skip mode (skip mode or skip / merge) is applied to a 2N × 2N block size coding unit You can decide. The merge skip mode is a special case of the merge mode. After quantization, transmission of the residual signal is omitted and only the selection information of neighboring blocks is transmitted in order to increase the efficiency when the transform coefficients for entropy encoding are all close to zero Lt; / RTI >
머지 스킵 모드의 적용 여부에 따라, 도 4에서의 블록 형태 각각(4a 내지 4h)의 예측 유닛에 대하여, 단방향 예측(Uni-L0 pred, Uni-L1 pred), 양방향 예측(Bi-Pred) 및 머지 모드(Merge Pred)에 따른 부호화를 각각 수행할 수 있다.Unidirectional prediction (Uni-L0 pred, Uni-L1 pred), bidirectional prediction (Bi-Pred), and merging of the merge skip mode and the merge skip mode are performed for the prediction units of each of the block types (4a to 4h) Mode (Merge Pred), respectively.
또한, 각 블록 형태에 따른 화면 간 예측이 종료되면, 화면 내 예측(Intra Pred)을 수행할 수 있고, 최종적으로 가장 부호화 효율이 높은 예측 방법 및 블록 형태를 선정할 수 있다.In addition, when inter-picture prediction according to each block type is completed, Intra Pred can be performed, and a prediction method and a block type having the highest coding efficiency can be finally selected.
여기서, 도 5를 참조하면, HEVC의 generalized B picture의 경우, 참조 픽쳐 목록(reference picture list)인 L0 및 L1이 동일하므로, 참조 픽쳐 목록 L1에 대한 단방향 예측을 생략할 수 있다.Referring to FIG. 5, unidirectional prediction for the reference picture list L1 can be omitted because L0 and L1, which are reference picture lists, are the same for a generalized B picture of an HEVC.
또한, 단방향 예측 또는 양방향 예측의 경우 더 상세하게는 정수 단위의 움직임 예측(Integer Motion Estimation / integer ME)을 수행하고, 1/2의 부화소 단위의 움직임 예측(1/2 ME)과 1/4의 부화소 단위의 움직임 예측(1/4 ME)을 수행할 수 있다.Further, in the case of unidirectional prediction or bidirectional prediction, Integer Motion Estimation / integer ME is performed in units of integer, and motion prediction (1/2 ME) Pixel-by-pixel motion prediction (1/4 ME).
도 5에 따른 HEVC 참조 소프트웨어의 구동 과정을 통해 알수 있는 것과 같이, 각각의 블록 형태(2N×2N ~ AMP)에 따라 단방향 예측뿐만 아니라 양방향 예측을 수행하기 때문에 부호화를 위한 연산 복잡도가 매우 크다. As can be seen from the driving process of the HEVC reference software according to FIG. 5, since the bidirectional prediction as well as the unidirectional prediction is performed according to each block type (2N x 2N to AMP), the computational complexity for coding is very large.
따라서, 이하에서는 화면 간 예측 모드 중에서 특히 연산량이 높은 양방향 예측을 경우에 따라 생략하는 방법을 설명한다.Therefore, in the following, a description will be given of a method of omitting bidirectional prediction, which has a particularly high computational amount, among the inter picture prediction modes in some cases.
도 6은 본 발명의 일 실시예에 따른 고속 영상 부호화 방법에 대한 제1 흐름도이다.6 is a first flowchart of a high-speed image coding method according to an embodiment of the present invention.
도 6을 참조하면, 고속 영상 부호화 장치에서의 고속 영상 부호화 방법은, 부호화할 현재 블록에 대한 단방향 예측을 수행하는 단계(S100), 단방향 예측에서 도출된 움직임 벡터(motion vector) 또는 움직임 벡터의 차분값(motion vector difference)이 정수 화소 단위인지 판단하는 단계(S110) 및 정수 화소 단위이면, 양방향 예측을 제외하고, 단방향 예측을 포함하는 예측 모드 중에서, 현재 블록에 대한 예측 모드를 선정하는 단계(S120)를 포함할 수 있다.Referring to FIG. 6, a high-speed image coding method in a high-speed image coding apparatus includes performing unidirectional prediction on a current block to be encoded (S100), calculating a difference between a motion vector or a motion vector derived from unidirectional prediction A step S110 of determining whether a motion vector difference is an integer pixel unit and a step S220 of selecting a prediction mode for a current block among prediction modes including unidirectional prediction except bi- ).
여기서, 고속 영상 부호화 장치는 도 1 내지 2에 따른 부호화 장치(20)를 지시할 수 있으며, 후에 설명할 도 8을 함께 참조할 수 있다.Here, the high-speed image encoding apparatus can designate the
여기서, 현재 블록은 HEVC에서의 예측 유닛을 지시할 수 있으나, 그에 한정하여 해석되는 것은 아니다.Here, the current block may indicate a prediction unit in the HEVC, but is not limited thereto.
여기서, 단방향 예측에서 움직임 정보가 정수 화소 단위로 도출되었다면, 현재 블록이 복잡하지 않은 블록인 것으로 판단할 수 있고, 부호화소 단위로 도출되었다면, 현재 블록이 복잡한 블록으로 판단할 수 있다. 따라서, 단방향 예측에서의 움직임 정보가 정소 화소 단위라면, 양방향 예측은 과감히 생략하고 그 다음 예측 모드(예를 들면 머지 모드)에 따른 예측을 수행하거나, 단방향 예측에 따른 예측 블록을 현재 블록에 대한 최적의 부호화로 판단하고, 단방향 예측을 예측 모드로 선정할 수도 있다.Here, if motion information is derived in units of integer pixels in unidirectional prediction, it can be determined that the current block is a non-complex block, and if it is derived in units of pixels, the current block can be determined as a complex block. Therefore, if the motion information in the unidirectional prediction is in the case of the test pixel unit, the bidirectional prediction can be skipped boldly and the prediction according to the next prediction mode (for example, the merge mode) And the unidirectional prediction may be selected as the prediction mode.
여기서, 단방향 예측을 수행하는 단계는, 참조 픽쳐에서 현재 블록의 위치 주변에 위치한 블록의 움직임 정보를 사용하여 초기 탐색 시작 위치를 결정하는 단계, 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 현재 블록 사이의 상관도를 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계 및 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 현재 블록 사이의 상관도를 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계를 포함할 수 있다.The step of performing unidirectional prediction includes the steps of determining an initial search start position using motion information of a block located around a position of a current block in a reference picture, Obtaining a first reference block by measuring the correlation between the reference block and the current block based on the initial search start position and measuring the correlation between the neighboring reference block and the current block on a subpixel basis, And a step of acquiring.
여기서, 초기 탐색 위치를 결정하는 것은 참조 픽쳐 내에서 모든 블록을 탐색할 경우 과도한 연산 복잡도를 갖기 때문에 탐색 범위를 제한하기 위한 것이다. 구체적으로, 주변 블록의 움직임 정보가 다수 존재할 경우 최소의 율-왜곡 비용을 가지는 인접 블록의 움직임 벡터를 움직임 탐색의 시작 위치로 결정할 수 있고, 주변 블록에 움직임 벡터가 존재하지 않는 경우 제로 움직임 벡터를 탐색의 시작 위치로 결정할 수 있다. 제로 움직임 벡터를 사용한다는 것은 참조 픽쳐 내에서 현재 부호화하려는 예측 유닛과 동일한 위치를 움직임 탐색의 시작 위치로 사용한다는 것을 의미할 수 있다. Here, the determination of the initial search position is intended to limit the search range because it has excessive computational complexity when searching all the blocks in the reference picture. Specifically, when there are a plurality of pieces of motion information of neighboring blocks, a motion vector of a neighboring block having a minimum rate-distortion cost can be determined as a start position of a motion search. If there is no motion vector in a neighboring block, It can be determined as the start position of the search. Using a zero motion vector may mean using the same position in the reference picture as the prediction unit to be currently encoded as the start position of the motion search.
여기서, 초기 탐색 위치에서 주변의 참조 블록을 탐색해나가는 과정은 마름모 탐색, 방형 탐색, 순차 탐색 등이 있을 수 있다.Here, the process of searching the neighboring reference block at the initial search position may be rhombic search, square search, sequential search, and the like.
여기서, 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계는, 현재 블록과 참조 블록의 SAD(Sum of Absolte Difference)를 측정하는 단계를 포함할 수 있다.Here, the step of acquiring the first reference block by measuring in units of integer pixels may include measuring a sum of absolute difference (SAD) between the current block and the reference block.
여기서, SAD는 다음의 수학식 1로부터 도출될 수 있다.Here, the SAD can be derived from the following equation (1).
수학식 1을 참조하면, Bcur은 현재 블록, Bref는 참조 블록을 지시하고, i,j는 현재 블록의 화소좌표, k,l은 참조 블록의 화소좌표를 지시할 수 있다.Referring to Equation (1), Bcur denotes a current block, Bref denotes a reference block, i, j denotes pixel coordinates of the current block, and k and l denote pixel coordinates of the reference block.
여기서, 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계는, 현재 블록과 참조 블록의 SATD(Sum of Transform Difference)를 측정하는 단계를 포함할 수 있다.Here, the step of measuring the sub-pixel and obtaining the second reference block may include measuring a Sum of Transform Difference (SATD) between the current block and the reference block.
여기서, SATD는 다음의 수학식 2로부터 도출될 수 있다.Here, SATD can be derived from the following equation (2).
수학식 2를 참조하면, T() 연산자는 하다마드 변환(Hadamard Transfrom)을 의미할 수 있다. Referring to Equation (2), the T () operator may mean Hadamard Transform.
여기서, 부화소 단위의 경우 부화소가 실제 존재하지는 않는 값이기 때문에 정수 화소 단위보다 정교한 고려를 위하여 수학식 1과 비교하여 하마다드 변환에 의한 변환을 추가로 적용할 수 있다. 다만, 하마다드 변환은 Descret Cosine Transform(DCT) 및 엔트로피 코딩과 동일하지는 않으나, 유사한 부호화 결과를 도출할 수 있어 사용될 수 있으며, DCT 및 엔트로피 코딩보다 연산 복잡도를 크게 감소시킬 수 있다.Here, since the subpixel unit does not actually have a subpixel unit, it is possible to further apply the Hamadard transform by comparing it with Equation 1 for more precise consideration than the integer pixel unit. However, the Hamadard transform is not the same as Descret Cosine Transform (DCT) and entropy coding, but it can be used because it can derive a similar encoding result and can greatly reduce the computational complexity than DCT and entropy coding.
여기서, 부화소 단위는 1/2 부화소 단위 및 1/4 부화소 단위 중 적어도 하나를 포함할 수 있다.Here, the sub-pixel unit may include at least one of a ½ sub-pixel unit and a ¼ sub-pixel unit.
여기서, 단방향 예측을 수행하는 단계는, 제1 참조 블록과 제2 참조 블록을 비교하여 최적의 율-왜곡 비용을 갖는 블록을 현재 블록에 대한 예측 블록으로 선정하여 움직임 벡터 또는 움직임 벡터 차분값 중 적어도 하나를 포함하는 움직임 정보를 생성할 수 있다.Herein, the performing the unidirectional prediction may include: selecting a block having an optimal rate-distortion cost as a prediction block for the current block by comparing the first reference block and the second reference block, It is possible to generate motion information including one.
여기서, 현재 블록은, 화소 단위의 2N×2N, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 블록 크기 중 적어도 하나를 포함할 수 있다.Here, the current block may include at least one of 2N × 2N, 2N × N, N × 2N, N × N, 2N × nU, 2N × nD, nL × 2N and nR × 2N block sizes .
도 7은 본 발명의 일 실시예에 따른 고속 영상 부호화 방법에 대한 제2 흐름도이다.7 is a second flowchart of a high-speed image encoding method according to an embodiment of the present invention.
도 7을 참조하면, 고속 영상 부호화 장치에서의 고속 영상 부호화 방법은, 화소 단위로 2N×2N의 블록 크기를 갖는 현재 블록에 대하여 단방향 예측 및 양방향 예측을 포함하는 예측 모드 중 하나를 선정하는 단계, 선정된 예측 모드가 양방향 예측이 아니면, 양방향 예측을 제외한 나머지 예측 모드 중에서 현재 블록과 다른 크기의 블록에 대한 예측 모드를 선정하는 단계를 포함할 수 있다.Referring to FIG. 7, a high-speed image encoding method in a high-speed image encoding apparatus includes a step of selecting one of prediction modes including unidirectional prediction and bidirectional prediction for a current block having a block size of 2Nx2N on a pixel- If the selected prediction mode is not bi-directional prediction, selecting a prediction mode for a block having a size different from that of the current block among the prediction modes other than bi-directional prediction.
여기서, 예측 모드는 단방향 예측 및 양방향 예측을 포함할 뿐 아니라, 머지 모드를 더 포함할 수 있고, AMVP 모드를 더 포함할 수도 있다.Here, the prediction mode includes unidirectional prediction and bidirectional prediction, and may further include merge mode, and may further include an AMVP mode.
여기서, 현재 블록이 2N×2N의 블록 크기를 가지고, 양방향 예측을 최적의 예측 방법/모드로 선정하였다면, 현재 블록은 움직임이 많거나 복잡한 영역으로 판단될 수 있고, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N의 크기를 갖는 블록에 대해서도 움직임이 많거나 복잡한 영역일 가능성이 높으므로 양방향 예측을 고려하는 것이 타당할 수 있다.Here, if the current block has a block size of 2N × 2N and bidirectional prediction is selected as an optimal prediction method / mode, the current block can be determined as a motion-rich or complex area, and 2N × N, N × 2N, It is reasonable to consider bidirectional prediction because blocks with sizes of NxN, 2NxnU, 2NxnD, nLx2N, and nRx2N are likely to be areas with more motion or more complexity.
반면, 현재 블록이 2N×2N의 블록 크기를 가지고, 양방향 예측을 최적의 예측 방법/모드로 선정하지 않은 경우, 현재 블록은 비교적 단순한 영역으로 판단될 수 있으므로, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N의 크기를 갖는 블록에 대해서 양방향 예측을 고려하지 않음으로써, 고속 부호화를 가능하게 할 수 있다.On the other hand, if the current block has a block size of 2N × 2N and the bidirectional prediction is not selected as the optimal prediction method / mode, the current block can be regarded as a relatively simple area. Therefore, 2N × N, N × 2N, N Speed coding can be made possible by not considering bidirectional prediction for blocks having sizes of N, 2N x nU, 2N x nD, nL x 2N, and nR x 2N.
여기서, 예측 모드를 선정하는 단계는, 현재 블록과 참조 픽쳐의 참조 블록 사이의 상관성이 가장 높은 참조 블록을 갖는 예측 모드를 선정할 수 있다.Here, in the step of selecting the prediction mode, a prediction mode having a reference block with the highest correlation between the current block and the reference block of the reference picture can be selected.
여기서, 현재 블록과 다른 크기의 블록은, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 중 적어도 하나의 크기를 가질 수 있다. Here, the block having a size different from that of the current block may have at least one size of 2N × N, N × 2N, N × N, 2N × nU, 2N × nD, nL × 2N, and nR × 2N.
도 8은 본 발명의 일 실시예에 따른 고속 영상 부호화 장치에 대한 구성도이다.8 is a block diagram of a high-speed image encoding apparatus according to an embodiment of the present invention.
도 8을 참조하면, 고속 영상 부호화 장치(20)는, 적어도 하나의 프로세서(processor, 21) 및 적어도 하나의 프로세서(21)가 적어도 하나의 단계를 수행하도록 지시하는 명령어들을 저장하는 메모리(memory, 22)를 포함할 수 있다.8, a high-speed
여기서, 고속 영상 부호화 장치(20)는 사용자로부터 입력을 수신하고, 부호화 결과 또는 영상을 디스플레이하는 입출력모듈(23)을 더 포함할 수 있는데, 입출력모듈(23)의 예를 들면 키보드, 마우스, 디스플레이 장치 등이 있을 수 있다.The high-speed
여기서, 고속 영상 부호화 장치(20)는 유무선 통신으로 부호화할 영상을 수신하거나, 부호화된 영상을 송신하는 통신 모듈(24)을 더 포함할 수 있다. Here, the high-speed
여기서, 고속 영상 부호화 장치(20)의 예를 들면, 통신 가능한 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 노트북(notebook), 스마트폰(smart phone), 태블릿 PC(tablet PC), 모바일폰(mobile phone), 스마트 워치(smart watch), 스마트 글래스(smart glass), e-book 리더기, PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 디지털 카메라(digital camera), DMB(digital multimedia broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), PDA(Personal Digital Assistant) 등일 수 있다.Here, the high-speed
여기서, 적어도 하나의 단계는, 부호화할 현재 블록에 대한 단방향 예측을 수행하는 단계, 단방향 예측에서 도출된 움직임 벡터(motion vector) 또는 움직임 벡터의 차분값(motion vector difference)이 정수 화소 단위인지 판단하는 단계 및 정수 화소 단위이면, 양방향 예측을 제외하고, 단방향 예측을 포함하는 화면 간 예측 모드 중에서, 현재 블록에 대한 예측 모드를 선정하는 단계를 포함할 수 있다.Here, at least one step may include performing unidirectional prediction on a current block to be coded, determining whether a motion vector or a motion vector difference derived from the unidirectional prediction is an integer pixel unit And selecting the prediction mode for the current block from among the inter-picture prediction modes including unidirectional prediction, except for bidirectional prediction, if the prediction mode is an integer pixel unit.
여기서, 단방향 예측을 수행하는 단계는, 참조 픽쳐에서 현재 블록의 위치 주변에 위치한 블록의 움직임 정보를 사용하여 초기 탐색 시작 위치를 결정하는 단계, 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 현재 블록 사이의 상관도를 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계 및 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 현재 블록 사이의 상관도를 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계를 포함할 수 있다.The step of performing unidirectional prediction includes the steps of determining an initial search start position using motion information of a block located around a position of a current block in a reference picture, Obtaining a first reference block by measuring the correlation between the reference block and the current block based on the initial search start position and measuring the correlation between the neighboring reference block and the current block on a subpixel basis, And a step of acquiring.
여기서, 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계는, 현재 블록과 참조 블록의 SAD(Sum of Absolte Difference)를 측정하는 단계를 포함할 수 있다.Here, the step of acquiring the first reference block by measuring in units of integer pixels may include measuring a sum of absolute difference (SAD) between the current block and the reference block.
여기서, 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계는, 현재 블록과 참조 블록의 SATD(Sum of Transform Difference)를 측정하는 단계를 포함할 수 있다.Here, the step of measuring the sub-pixel and obtaining the second reference block may include measuring a Sum of Transform Difference (SATD) between the current block and the reference block.
여기서, 부화소 단위는, 1/2 부화소 단위 및 1/4 부화소 단위 중 적어도 하나를 포함할 수 있다.Here, the subpixel unit may include at least one of a 1/2 subpixel unit and a 1/4 subpixel unit.
여기서, 단방향 예측을 수행하는 단계는, 제1 참조 블록과 제2 참조 블록을 비교하여 최적의 율-왜곡 비용을 갖는 블록을 현재 블록에 대한 예측 블록으로 선정하여 움직임 벡터 또는 움직임 벡터 차분값 중 적어도 하나를 포함하는 움직임 정보를 생성할 수 있다.Herein, the performing the unidirectional prediction may include: selecting a block having an optimal rate-distortion cost as a prediction block for the current block by comparing the first reference block and the second reference block, It is possible to generate motion information including one.
여기서, 현재 블록은, 화소 단위의 2N×2N, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 블록 크기 중 적어도 하나를 포함할 수 있다.Here, the current block may include at least one of 2N × 2N, 2N × N, N × 2N, N × N, 2N × nU, 2N × nD, nL × 2N and nR × 2N block sizes .
여기서, 적어도 하나의 단계는, 현재 블록이 화소 단위로 2N×2N의 블록 크기를 갖고, 양방향 예측을 제외한 예측 모드 중에서 현재 블록의 예측 모드가 선정된 경우, 양방향 예측을 제외한 나머지 예측 모드 중에서 현재 블록과 다른 크기의 블록에 대한 예측 모드를 선정하는 단계를 더 포함할 수 있다.Here, at least one of the prediction modes is a step of, if the current block has a block size of 2N x 2N on a pixel basis and the prediction mode of the current block is selected from among the prediction modes excluding bidirectional prediction, And selecting a prediction mode for a block of a different size from the prediction mode.
여기서, 예측 모드를 선정하는 단계는, 현재 블록과 참조 픽쳐의 참조 블록 사이의 상관성이 가장 높은 참조 블록을 갖는 예측 모드를 선정할 수 있다.Here, in the step of selecting the prediction mode, a prediction mode having a reference block with the highest correlation between the current block and the reference block of the reference picture can be selected.
여기서, 현재 블록과 다른 크기의 블록은, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 중 적어도 하나의 크기를 가질 수 있다. Here, the block having a size different from that of the current block may have at least one size of 2N × N, N × 2N, N × N, 2N × nU, 2N × nD, nL × 2N, and nR × 2N.
표 1은 본 발명의 일 실시예에 따른 고속 영상 부호화 방법 또는 고속 영상 부호화 장치를 수행한 실험 환경을 나타낸 표이다.Table 1 is a table showing an experimental environment in which a high-speed image encoding method or a high-speed image encoding apparatus according to an embodiment of the present invention is performed.
표 1을 참조하면, 실험 영상으로 각 해상도(1920×1080, 832×480, 1280×720)에 따른 영상들(BasketballDrive, ParkScene 등)을 사용하였고, 부호화한 프레임은 각 영상의 fps에 10초 분량에 대하여 수행하였으며, 참조 소프트웨어는 HEVC의 HM 15.0을 사용하였다. 양자화 매개변수로 22, 27, 32, 37을 사용하였고, 설정(Configuration)으로 Low-delay를 적용하였다.Referring to Table 1, images (BasketballDrive, ParkScene, etc.) corresponding to the respective resolutions (1920 × 1080, 832 × 480, and 1280 × 720) were used as the experimental images, and the encoded frames were recorded for 10 seconds And reference software was HM 15.0 of HEVC. The
표 2는 본 발명에 따른 고속 영상 부호화 방법 및 장치를 적용할 경우(Proposed), 기존의 고속 부호화 방법인 RoIMBC를 제외한 참조 소프트웨어 HM 15.0과 비교하여 양방향 예측을 수행하는 함수(function)가 얼마나 생략되는지를 나타낸 것이다.Table 2 shows how a function for performing bidirectional prediction is omitted compared with the reference software HM 15.0 except for RoIMBC, which is a conventional fast encoding method, when a high-speed image encoding method and apparatus according to the present invention is applied .
표 2를 참조하면, 종래 기술인 UCU-EBS(upper CU-based early bi-prediction skipping method)와도 비교하여 본 발명에 따른 고속 영상 부호화 방법 및 장치가 평균적으로 84퍼센트(%)의 불필요한 양방향 예측 과정을 생략할 수 있음을 확인할 수 있다. Referring to Table 2, in comparison with the prior art UCU-EBS (upper CU-based early bi-prediction skipping method), the high-speed image encoding method and apparatus according to the present invention perform an average unnecessary bidirectional prediction process of 84% Can be omitted.
표 3은 본 발명에 따른 고속 영상 부호화 방법 및 장치(Proposed)와 기존 기술(UCU-EBS) 사이의 압축률 및 부호화 시간의 차이를 나타낸 실험 결과이다.Table 3 shows experimental results showing the difference in compression rate and encoding time between the high-speed image encoding method and apparatus according to the present invention and the existing technology (UCU-EBS).
표 3을 참조하면, 각 영상 시퀀스(Sequence)에 대하여, BD-rate 측정 단위를 사용하였고, 양의 실수 값은 동일 화질 대비 필요한 비트량의 증가(압축률 손실)를 나타내고, 음의 실수값은 동일 화질 대비 필요한 비트량의 감소(압축률 이득)을 나타낸다. 본 발명에 따른 고속 영상 부호화 방법 및 장치를 사용한 경우, 부호화 시간에서 평균적으로 6퍼센트(%)가 더 감소되었음을 확인하였다.Referring to Table 3, a BD-rate measurement unit is used for each image sequence, and a positive real number value indicates an increase in bit amount (compression rate loss) required for the same image quality, and a negative real number value is the same (Compression rate gain) required for image quality. It has been confirmed that the use of the high-speed image encoding method and apparatus according to the present invention further reduces an average of 6% (%) in encoding time.
표 4는 부호화 복잡도에 치명적인 메모리 이슈를 감소시킨 기술인 RoIBMC와 비교하여 UCU-EBS 방법과 본 발명에 따른 고속 영상 부호화 방법 및 장치(Proposed)가 얼마나 메모리 접근 횟수가 감소하였는지를 나타낸 것이다.Table 4 shows how the UCU-EBS method and the high-speed image encoding method and apparatus according to the present invention reduce the number of memory accesses compared to RoIBMC, which is a technique for reducing memory issues that are critical to encoding complexity.
표 4를 참조하면, 본 발명에 따른 고속 영상 부호화 방법 및 장치는 RoIBMC와 비교하여 메모리 접근이 69% 감소하였고, UCU-EBS와 비교하면 19% 더 감소하였음을 확인하였다.Referring to Table 4, it is confirmed that the high-speed image encoding method and apparatus according to the present invention have a 69% reduction in memory access and a 19% reduction in UCU-EBS compared to RoIBMC.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.The methods according to the present invention can be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the computer readable medium may be those specially designed and constructed for the present invention or may be available to those skilled in the computer software.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Examples of computer-readable media include hardware devices that are specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions may include machine language code such as those produced by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate with at least one software module to perform the operations of the present invention, and vice versa.
또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다.Furthermore, the above-mentioned method or apparatus may be implemented by combining all or a part of the structure or function, or may be implemented separately.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the present invention as defined by the following claims It can be understood that
Claims (20)
부호화할 현재 블록에 대한 단방향 예측을 수행하는 단계;
상기 단방향 예측에서 도출된 움직임 벡터(motion vector) 또는 움직임 벡터의 차분값(motion vector difference)이 정수 화소 단위인지 판단하는 단계; 및
정수 화소 단위이면, 양방향 예측을 제외하고, 상기 단방향 예측을 포함하는 예측 모드 중에서, 상기 현재 블록에 대한 예측 모드를 선정하는 단계를 포함하는, 고속 영상 부호화 방법.In a high-speed image encoding method in a high-speed image encoding apparatus,
Performing unidirectional prediction on a current block to be encoded;
Determining whether a motion vector difference or a motion vector difference derived from the unidirectional prediction is an integer pixel unit; And
And selecting a prediction mode for the current block among the prediction modes including the unidirectional prediction except bidirectional prediction if the prediction mode is an integer pixel unit.
상기 단방향 예측을 수행하는 단계는,
참조 픽쳐에서 상기 현재 블록의 위치 주변에 위치한 블록의 움직임 정보를 사용하여 초기 탐색 시작 위치를 결정하는 단계;
상기 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 상기 현재 블록 사이의 상관도를 상기 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계; 및
상기 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 상기 현재 블록 사이의 상관도를 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계를 포함하는, 고속 영상 부호화 방법.In claim 1,
Wherein the performing the unidirectional prediction comprises:
Determining an initial search start position using motion information of a block located around a position of the current block in a reference picture;
Obtaining a first reference block by measuring a degree of correlation between the neighboring reference block and the current block based on the initial search start position in units of the integer pixels; And
And obtaining a second reference block by measuring a degree of correlation between a neighboring reference block and the current block on a subpixel basis based on the initial search start position.
상기 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계는,
상기 현재 블록과 상기 참조 블록의 SAD(Sum of Absolte Difference)를 측정하는 단계를 포함하는, 고속 영상 부호화 방법. In claim 2,
Wherein the step of acquiring the first reference block by measuring in units of integer pixels comprises:
And measuring a sum of absolute difference (SAD) between the current block and the reference block.
상기 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계는,
상기 현재 블록과 상기 참조 블록의 SATD(Sum of Transform Difference)를 측정하는 단계를 포함하는, 고속 영상 부호화 방법.In claim 2,
Wherein the step of acquiring the second reference block by measuring the sub-
And measuring SATD (Sum of Transform Difference) between the current block and the reference block.
상기 부화소 단위는,
1/2 부화소 단위 및 1/4 부화소 단위 중 적어도 하나를 포함하는, 고속 영상 부호화 방법.In claim 2,
The sub-
Pixel sub-pixel unit and a 1/4 sub-pixel unit.
상기 단방향 예측을 수행하는 단계는,
상기 제1 참조 블록과 상기 제2 참조 블록을 비교하여 최적의 율-왜곡 비용을 갖는 블록을 상기 현재 블록에 대한 예측 블록으로 선정하여 상기 움직임 벡터 또는 상기 움직임 벡터 차분값 중 적어도 하나를 포함하는 움직임 정보를 생성하는, 고속 영상 부호화 방법.In claim 2,
Wherein the performing the unidirectional prediction comprises:
The method of claim 1, further comprising: comparing the first reference block with the second reference block to select a block having an optimal rate-distortion cost as a prediction block for the current block and generating a motion including at least one of the motion vector or the motion vector difference Speed information encoding method.
상기 현재 블록은,
화소 단위의 2N×2N, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 블록 크기 중 적어도 하나를 포함하는, 고속 영상 부호화 방법.In claim 1,
Wherein the current block comprises:
Wherein the block size includes at least one of 2N × 2N, 2N × N, N × 2N, N × N, 2N × nU, 2N × nD, nL × 2N and nR × 2N block sizes.
화소 단위로 2N×2N의 블록 크기를 갖는 현재 블록에 대하여 단방향 예측 및 양방향 예측을 포함하는 예측 모드 중 하나를 선정하는 단계;
선정된 예측 모드가 양방향 예측이 아니면, 상기 양방향 예측을 제외한 나머지 예측 모드 중에서 상기 현재 블록과 다른 크기의 블록에 대한 예측 모드를 선정하는 단계를 포함하는, 고속 영상 부호화 방법.In a high-speed image encoding method in a high-speed image encoding apparatus,
Selecting one of prediction modes including unidirectional prediction and bidirectional prediction for a current block having a block size of 2Nx2N on a pixel-by-pixel basis;
And selecting a prediction mode for a block having a size different from the current block from among the prediction modes other than the bidirectional prediction, if the selected prediction mode is not bi-directional prediction.
상기 예측 모드를 선정하는 단계는,
상기 현재 블록과 참조 픽쳐의 참조 블록 사이의 상관성이 가장 높은 참조 블록을 갖는 예측 모드를 선정하는, 고속 영상 부호화 방법.In claim 8,
Wherein the step of selecting the prediction mode comprises:
Wherein a prediction mode having a reference block with the highest correlation between the current block and a reference block of the reference picture is selected.
상기 현재 블록과 다른 크기의 블록은,
2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 중 적어도 하나의 크기를 갖는, 고속 영상 부호화 방법. In claim 8,
The block having a size different from that of the current block,
2N × N, N × 2N, N × N, 2N × nU, 2N × nD, nL × 2N, and nR × 2N.
상기 적어도 하나의 프로세서가 적어도 하나의 단계를 수행하도록 지시하는 명령어들을 저장하는 메모리를 포함하는 고속 영상 부호화 장치에서,
상기 적어도 하나의 단계는,
부호화할 현재 블록에 대한 단방향 예측을 수행하는 단계;
상기 단방향 예측에서 도출된 움직임 벡터(motion vector) 또는 움직임 벡터의 차분값(motion vector difference)이 정수 화소 단위인지 판단하는 단계; 및
정수 화소 단위이면, 양방향 예측을 제외하고, 상기 단방향 예측을 포함하는 화면 간 예측 모드 중에서, 상기 현재 블록에 대한 예측 모드를 선정하는 단계를 포함하는, 고속 영상 부호화 장치.At least one processor; And
A memory for storing instructions for directing the at least one processor to perform at least one step,
Wherein the at least one step comprises:
Performing unidirectional prediction on a current block to be encoded;
Determining whether a motion vector difference or a motion vector difference derived from the unidirectional prediction is an integer pixel unit; And
And selecting the prediction mode for the current block from among the inter-picture prediction modes including the unidirectional prediction, except bidirectional prediction, if the prediction mode is an integer pixel unit.
상기 단방향 예측을 수행하는 단계는,
참조 픽쳐에서 상기 현재 블록의 위치 주변에 위치한 블록의 움직임 정보를 사용하여 초기 탐색 시작 위치를 결정하는 단계;
상기 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 상기 현재 블록 사이의 상관도를 상기 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계; 및
상기 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 상기 현재 블록 사이의 상관도를 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계를 포함하는, 고속 영상 부호화 장치.In claim 11,
Wherein the performing the unidirectional prediction comprises:
Determining an initial search start position using motion information of a block located around a position of the current block in a reference picture;
Obtaining a first reference block by measuring a degree of correlation between the neighboring reference block and the current block based on the initial search start position in units of the integer pixels; And
And obtaining a second reference block by measuring a degree of correlation between a neighboring reference block and the current block based on the initial search start position on a subpixel basis.
상기 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계는,
상기 현재 블록과 상기 참조 블록의 SAD(Sum of Absolte Difference)를 측정하는 단계를 포함하는, 고속 영상 부호화 장치. In claim 12,
Wherein the step of acquiring the first reference block by measuring in units of integer pixels comprises:
And measuring a sum of absolute difference (SAD) between the current block and the reference block.
상기 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계는,
상기 현재 블록과 상기 참조 블록의 SATD(Sum of Transform Difference)를 측정하는 단계를 포함하는, 고속 영상 부호화 장치.In claim 12,
Wherein the step of acquiring the second reference block by measuring the sub-
And measuring SATD (Sum of Transform Difference) between the current block and the reference block.
상기 부화소 단위는,
1/2 부화소 단위 및 1/4 부화소 단위 중 적어도 하나를 포함하는, 고속 영상 부호화 장치.In claim 12,
The sub-
Pixel sub-pixel unit, and a 1/4 sub-pixel unit.
상기 단방향 예측을 수행하는 단계는,
상기 제1 참조 블록과 상기 제2 참조 블록을 비교하여 최적의 율-왜곡 비용을 갖는 블록을 상기 현재 블록에 대한 예측 블록으로 선정하여 상기 움직임 벡터 또는 상기 움직임 벡터 차분값 중 적어도 하나를 포함하는 움직임 정보를 생성하는, 고속 영상 부호화 장치.In claim 12,
Wherein the performing the unidirectional prediction comprises:
The method of claim 1, further comprising: comparing the first reference block with the second reference block to select a block having an optimal rate-distortion cost as a prediction block for the current block and generating a motion including at least one of the motion vector or the motion vector difference Speed information encoding apparatus.
상기 현재 블록은,
화소 단위의 2N×2N, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 블록 크기 중 적어도 하나를 포함하는, 고속 영상 부호화 장치.In claim 11,
Wherein the current block comprises:
And a block size of 2N × 2N, 2N × N, N × 2N, N × N, 2N × nU, 2N × nD, nL × 2N and nR × 2N blocks.
상기 적어도 하나의 단계는,
상기 현재 블록이 화소 단위로 2N×2N의 블록 크기를 갖고, 상기 양방향 예측을 제외한 예측 모드 중에서 상기 현재 블록의 예측 모드가 선정된 경우,
상기 양방향 예측을 제외한 나머지 예측 모드 중에서 상기 현재 블록과 다른 크기의 블록에 대한 예측 모드를 선정하는 단계를 더 포함하는, 고속 영상 부호화 장치.In claim 11,
Wherein the at least one step comprises:
Wherein when the current block has a block size of 2N x 2N on a pixel basis and a prediction mode of the current block is selected from prediction modes other than the bidirectional prediction,
Further comprising the step of selecting a prediction mode for a block of a size different from the current block from among the prediction modes other than the bidirectional prediction.
상기 예측 모드를 선정하는 단계는,
상기 현재 블록과 참조 픽쳐의 참조 블록 사이의 상관성이 가장 높은 참조 블록을 갖는 예측 모드를 선정하는, 고속 영상 부호화 장치.In claim 18,
Wherein the step of selecting the prediction mode comprises:
And selects a prediction mode having a reference block having the highest correlation between the current block and a reference block of the reference picture.
상기 현재 블록과 다른 크기의 블록은,
2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 중 적어도 하나의 크기를 갖는, 고속 영상 부호화 장치. In claim 18,
The block having a size different from that of the current block,
2N × N, N × 2N, N × N, 2N × nU, 2N × nD, nL × 2N, and nR × 2N.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160057075 | 2016-05-10 | ||
KR20160057075 | 2016-05-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170126817A true KR20170126817A (en) | 2017-11-20 |
KR102017027B1 KR102017027B1 (en) | 2019-09-02 |
Family
ID=60809484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170058195A KR102017027B1 (en) | 2016-05-10 | 2017-05-10 | Fast video encoding method and apparatus for the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102017027B1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110103276A (en) * | 2010-03-12 | 2011-09-20 | 호서대학교 산학협력단 | Method for fast determining encoding mode of macro block in h.264/avc |
KR20130029361A (en) * | 2011-09-14 | 2013-03-22 | 삼성전자주식회사 | Method and apparatus for encoding and decoding video |
JP2013098933A (en) * | 2011-11-04 | 2013-05-20 | Sony Corp | Image processing device and method |
-
2017
- 2017-05-10 KR KR1020170058195A patent/KR102017027B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110103276A (en) * | 2010-03-12 | 2011-09-20 | 호서대학교 산학협력단 | Method for fast determining encoding mode of macro block in h.264/avc |
KR20130029361A (en) * | 2011-09-14 | 2013-03-22 | 삼성전자주식회사 | Method and apparatus for encoding and decoding video |
JP2013098933A (en) * | 2011-11-04 | 2013-05-20 | Sony Corp | Image processing device and method |
Also Published As
Publication number | Publication date |
---|---|
KR102017027B1 (en) | 2019-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11388393B2 (en) | Method for encoding video information and method for decoding video information, and apparatus using same | |
US9900610B2 (en) | Method and device for encoding/decoding image by inter prediction using random block | |
KR101830352B1 (en) | Method and Apparatus Video Encoding and Decoding using Skip Mode | |
KR101316060B1 (en) | Decoding method of inter coded moving picture | |
KR101943049B1 (en) | Method and Apparatus for Image Encoding/Decoding | |
KR20190009408A (en) | Method and Apparatus for Video Encoding/Decoding | |
KR20210100196A (en) | DMVR-based inter prediction method and device | |
KR101955374B1 (en) | Method and Apparatus for Image Encoding/Decoding By Fast Coding Unit Mode Decision | |
JP2017511620A (en) | Innovations in block vector prediction and estimation of reconstructed sample values in overlapping areas | |
KR20130085838A (en) | Video coding method and apparatus using weighted prediction | |
KR102621958B1 (en) | Candidate motion vector list acquisition method, device, encoder and decoder | |
EP4099696A1 (en) | Video decoding method, video coding method, electronic device, and storage medium | |
KR20130067280A (en) | Decoding method of inter coded moving picture | |
CN113170176B (en) | Video encoder, video decoder and corresponding methods | |
CN113615173A (en) | Method and device for carrying out optical flow prediction correction on affine decoding block | |
KR102594692B1 (en) | Image decoding method and device for chroma components | |
CN113196783A (en) | De-blocking filter adaptive encoder, decoder and corresponding methods | |
JP2023179684A (en) | Picture prediction method and device, and computer readable storage medium | |
KR101943058B1 (en) | Method and Apparatus for Video Encoding/Decoding | |
KR101377529B1 (en) | Video Coding and Decoding Method and Apparatus Using Adaptive Motion Vector Coding/Encoding | |
KR20100019088A (en) | Inter prediction apparatus and video encoding/decoding apparatus and method using same | |
KR101796876B1 (en) | A method for video encoding using motion estimation and an apparatus thereof | |
KR20220003119A (en) | Image decoding method and apparatus for chroma quantization parameter data | |
KR102017027B1 (en) | Fast video encoding method and apparatus for the same | |
RU2810126C2 (en) | Method and device for image prediction and computer readable data medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |