KR20240059507A - 처리율 향상을 위한 영상 부호화 방법, 장치 및 비트스트림을 저장한 기록 매체 - Google Patents

처리율 향상을 위한 영상 부호화 방법, 장치 및 비트스트림을 저장한 기록 매체 Download PDF

Info

Publication number
KR20240059507A
KR20240059507A KR1020230018899A KR20230018899A KR20240059507A KR 20240059507 A KR20240059507 A KR 20240059507A KR 1020230018899 A KR1020230018899 A KR 1020230018899A KR 20230018899 A KR20230018899 A KR 20230018899A KR 20240059507 A KR20240059507 A KR 20240059507A
Authority
KR
South Korea
Prior art keywords
motion information
block
current block
video encoding
deriving
Prior art date
Application number
KR1020230018899A
Other languages
English (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 KR20240059507A publication Critical patent/KR20240059507A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/184Methods 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 bits, e.g. of the compressed video stream

Landscapes

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

Abstract

본 개시에서, 현재 블록의 주변 블록의 움직임 정보를 획득하고, 현재 블록의 움직임 정보의 유도가 필요한 경우, 현재 블록의 움직임 정보를 유도하는 단계, 현재 블록의 움직임 정보에 기초하여, 현재 블록의 하나 이상의 움직임 정보 세트를 결정하는 단계, 현재 블록의 하나 이상의 움직임 정보 세트에 기초하여, 현재 블록의 다음 부호화 순서인 다음 블록의 움직임 정보를 유도하는 단계, 및 현재 블록의 하나 이상의 움직임 정보 세트에 기초하여, 현재 블록의 화면 간 예측 모드 및 움직임 벡터 결정하는 단계를 포함하는 비디오 부호화 방법이 제공된다.

Description

처리율 향상을 위한 영상 부호화 방법, 장치 및 비트스트림을 저장한 기록 매체 { METHOD AND APPARATUS FOR VIDEO ENCODING TO IMPORVE THROUGHPUT AND RECORDING MEDIUM FOR STORING BITSTREAM }
본 개시는 영상의 부호화 방법 및 장치에 관한 것으로, 보다 상세하게는 처리율을 향상시키기 위한 영상 부호화하는 방법 및 장치에 관한 것이다.
최근 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 응용 분야에서 증가하고 있다. 영상 데이터가 고해상도, 고품질이 될수록 기존의 영상 데이터에 비해 상대적으로 데이터량이 증가하기 때문에 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 데이터를 전송하거나 기존의 저장 매체를 이용해 저장하는 경우, 전송 비용과 저장 비용이 증가하게 된다. 영상 데이터가 고해상도, 고품질화 됨에 따라 발생하는 이러한 문제들을 해결하기 위해서는 더 높은 해상도 및 화질을 갖는 영상에 대한 고효율 영상 부호화(encoding)/복호화(decoding) 기술이 요구된다.
영상 압축 기술로 현재 픽처의 이전 또는 이후 픽처로부터 현재 픽처에 포함된 화소 값을 예측하는 화면 간 예측 기술, 현재 픽처 내의 화소 정보를 이용하여 현재 픽처에 포함된 화소 값을 예측하는 화면내 예측 기술, 잔여 신호의 에너지를 압축하기 위한 변환 및 양자화 기술, 출현 빈도가 높은 값에 짧은 부호를 할당하고 출현 빈도가 낮은 값에 긴 부호를 할당하는 엔트로피 부호화 기술 등 다양한 기술이 존재하고 이러한 영상 압축 기술을 이용해 영상 데이터를 효과적으로 압축하여 전송 또는 저장할 수 있다.
종래의 영상 부호화에서는 주변 블록이 부호화가 완료되어야 현재 블록의 움직임 정보 예측, 화면 내 예측 및 부호화를 수행할 수 있기 때문에 처리율을 향상시키는 데 한계가 있다.
본 개시는 부호화기의 처리율을 향상시키기 위해, 주변 블록이 부호화가 완료되기 전에 현재 블록의 부호화를 수행할 수 있도록 주변 블록과 현재 블록의 의존성을 최소화하는 방법, 장치 및 비트스트림을 저장한 기록 매체를 제공할 수 있다.
본 개시에서, 비디오 부호화 방법에 있어서, 현재 블록의 움직임 정보를 유도하는 단계; 상기 현재 블록의 움직임 정보에 기초하여, 상기 현재 블록의 하나 이상의 움직임 정보 세트를 결정하는 단계; 상기 현재 블록의 상기 하나 이상의 움직임 정보 세트에 기초하여, 상기 현재 블록의 다음 부호화 순서인 다음 블록의 움직임 정보를 유도하는 단계; 및 상기 현재 블록의 상기 하나 이상의 움직임 정보 세트에 기초하여, 상기 현재 블록의 화면 간 예측 모드 및 움직임 벡터가 결정하는 단계를 포함하는 비디오 부호화 방법에 제공된다.
일 실시 예에 따르면, 상기 현재 블록의 움직임 정보를 유도하는 단계에 있어서, 상기 현재 블록의 이전 블록의 부호화 과정에서 상기 현재 블록에 대한 복수의 움직임 정보 세트가 유도된 경우, 상기 복수의 움직임 정보 세트 중 하나를 획득하는 것을 특징으로 할 수 있다.
일 실시 예에 따르면, 상기 이전 블록에 적용된 화면 간 예측 모드 및 움직임 정보에 기초하여, 상기 복수의 움직임 정보 세트 중 하나가 획득되는 것을 특징으로 할 수 있다.
일 실시 예에 따르면, 상기 현재 블록의 움직임 정보를 유도하는 단계에 있어서, 상기 현재 블록이 소정의 이미지 단위의 첫 번째 블록인 경우 또는 상기 현재 블록의 이전 블록의 부호화 과정에서 상기 현재 블록에 대한 복수의 움직임 정보 세트가 유도되지 않은 경우, 상기 현재 블록의 움직임 정보를 유도되는 것을 특징으로 할 수 있다.
일 실시 예에 따르면, 상기 소정의 이미지 단위는, 픽처, 슬라이스, 타일, CTU(Coding Tree Unit), 최대 CU(Coding Unit) 크기의 CU, 또는 MB(Macroblock)인 것을 특징으로 할 수 있다.
일 실시 예에 따르면, 상기 다음 블록의 움직임 정보를 유도하는 단계에 있어서, 상기 현재 블록의 상기 하나 이상의 움직임 정보 세트 중 소정의 움직임 정보를 선택하는 단계; 상기 소정의 움직임 정보가 포함된 상기 다음 블록의 움직임 정보 세트를 유도하는 단계를 포함하는 것을 특징으로 할 수 있다.
일 실시 예에 따르면, 상기 다음 블록의 움직임 정보를 유도하는 단계에 있어서, 상기 현재 블록의 상기 하나 이상의 움직임 정보 세트 중 복수의 움직임 정보를 선택하는 단계; 상기 복수의 움직임 정보 각각에 대하여, 상기 다음 블록의 복수의 움직임 정보 세트를 유도하는 단계를 포함하는 것을 특징으로 할 수 있다.
일 실시 예에 따르면, 상기 다음 블록의 움직임 정보를 유도하는 단계에 있어서, 상기 현재 블록이 화면 내 예측됨을 가정하여, 상기 다음 블록의 움직임 정보 세트를 유도하는 단계를 포함하는 것을 특징으로 할 수 있다.
일 실시 예에 따르면, 상기 유도되는 다음 블록의 움직임 정보 세트는 상기 다음 블록의 소정의 인접 위치에 대응되는 블록의 움직임 정보를 포함하고, 상기 소정의 인접 위치는, 화면 간 예측 모드에서 참조하는 복수의 참조 위치 중 일부인 것을 특징으로 할 수 있다.
일 실시 예에 따르면, 상기 획득된 움직임 정보 세트에, 상기 현재 블록의 참조 위치로부터 도출된 움직임 정보를 더 추가하는 단계를 포함하는 것을 특징으로 할 수 있다.
일 실시 예에 따르면, 상기 다음 블록의 움직임 정보를 유도하는 단계에 있어서, 상기 다음 블록이 상기 다음 블록이 포함된 이미지 단위의 상단에 위치할 때, 상기 다음 블록의 상단 블록들의 움직임 정보를 포함하는 라인 버퍼로부터 상기 다음 블록의 상단 블록의 움직임 정보를 획득하는 단계; 및 상기 다음 블록의 상단 블록의 움직임 정보에 기초하여, 상기 다음 블록의 움직임 정보 세트를 유도하는 단계를 포함하는 것을 특징으로 할 수 있다.
본 개시에서, 상기 비디오 부호화 방법에 의하여 부호화된 비디오의 비트스트림을 저장하는 비트스트림 저장 방법이 제공된다.
본 개시에서, 상기 비디오 부호화 방법에 의하여 부호화된 비디오의 비트스트림을 저장하는 컴퓨터로 판독가능한 기록매체가 제공된다.
본 개시에서, 상기 비디오 부호화 방법에 의하여 부호화된 비디오의 비트스트림을 전송하는 비트스트림 전송 방법이 제공된다.
본 개시에서, 하나 이상의 메모리와 하나 이상의 프로세서를 포함하는 비디오 부호화 장치에 있어서, 비디오 부호화 방법을 구현하기 위한 명령(instruction)이 저장된 하나 이상의 메모리; 및 상기 하나 이상의 메모리에 저장된 명령을 실행하는 하나 이상의 프로세서를 포함하고, 상기 명령은, 현재 블록의 움직임 정보를 유도하는 단계; 상기 현재 블록의 움직임 정보에 기초하여, 상기 현재 블록의 하나 이상의 움직임 정보 세트를 결정하는 단계; 상기 현재 블록의 상기 하나 이상의 움직임 정보 세트에 기초하여, 상기 현재 블록의 다음 부호화 순서인 다음 블록의 움직임 정보를 유도하는 단계; 및 상기 현재 블록의 상기 하나 이상의 움직임 정보 세트에 기초하여, 상기 현재 블록의 화면 간 예측 모드 및 움직임 벡터 결정하는 단계를 포함하는 것을 특징으로 하는 비디오 부호화 장치가 제공된다.
본 개시에서, 제1 부호화기와 제2 부호화기를 포함하는 복수의 복호화기를 포함하는 비디오 부호화 장치에 있어서, 상기 제1 부호화기는, 영상의 제1 블록의 움직임 정보를 부호화하고, 상기 제1 블록의 움직임 정보를 결정하기 위한 상기 제1 블록의 상기 하나 이상의 움직임 정보 세트에 기초하여, 상기 제1 블록 다음으로 부호화되는 제2 블록의 움직임 정보 세트를 유도하고, 상기 제2 부호화기는, 상기 제2 블록의 움직임 정보 세트에 따라, 상기 제2 블록의 움직임 정보를 부호화하는 것을 특징으로 하는 비디오 복호화 장치가 제공된다.
본 개시에서, 비디오 부호화 방법을 구현하기 위한 명령이 저장된 컴퓨터로 판독가능한 기록매체에 있어서, 상기 비디오 부호화 방법은, 현재 블록의 움직임 정보를 유도하는 단계; 상기 현재 블록의 움직임 정보에 기초하여, 상기 현재 블록의 하나 이상의 움직임 정보 세트를 결정하는 단계; 상기 현재 블록의 상기 하나 이상의 움직임 정보 세트에 기초하여, 상기 현재 블록의 다음 부호화 순서인 다음 블록의 움직임 정보를 유도하는 단계; 및 상기 현재 블록의 상기 하나 이상의 움직임 정보 세트에 기초하여, 상기 현재 블록의 화면 간 예측 모드 및 움직임 벡터 결정하는 단계를 포함하는 컴퓨터로 판독가능한 기록매체가 제공된다.
본 개시에서는 부호화기의 처리율을 향상시키기 위해, 주변 블록이 부호화가 완료되기 전에 현재 블록의 부호화를 수행할 수 있도록 주변 블록과 현재 블록의 의존성을 최소화하는 방법, 장치 및 비트스트림을 저장한 기록 매체를 제공된다.
도 1은 영상 부호화 장치의 구성을 간략하게 나타낸 예시도이다.
도 2는 영상 부호화 장치의 예측부의 일 실시예를 도시한 예시도이다.
도 3은 본 개시의 일 실시 예에 따른 영상 부호화 방법을 나타내는 흐름도이다.
도 4는 64x64 크기의 블록의 움직임 벡터 예측 또는 유도를 위해 사용하는 주변 움직임 벡터 위치의 일 실시 예를 나타낸다.
도 5는 부호화기의 처리율을 향상시키기 위한 비디오 부호화 방법의 일 실시 예를 나타낸다.
본 명세서에 첨부된 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시예를 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우 뿐 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다.
또한, 본 명세서 전체에서 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
또한, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
또한, 본 명세서에서 설명되는 장치 및 방법에 관한 실시예에 있어서, 장치의 구성 일부 또는 방법의 단계 일부는 생략될 수 있다. 또한 장치의 구성 일부 또는 방법의 단계 일부의 순서가 변경될 수 있다. 또한 장치의 구성 일부 또는 방법의 단계 일부에 다른 구성 또는 다른 단계가 삽입될 수 있다.
또한, 본 개시의 제1 실시예의 일부 구성 또는 일부 단계는 본 개시의 제2 실시예에 부가되거나, 제2 실시예의 일부 구성 또는 일부 단계를 대체할 수 있다.
덧붙여, 본 개시의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 기술되고, 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 개시의 본질에서 벗어나지 않는 한 본 개시의 권리 범위에 포함된다.
먼저, 본 출원에서 사용되는 용어를 간략히 설명하면 다음과 같다.
이하에서 후술할 복호화 장치(Video Decoding Apparatus)는 민간 보안 카메라, 민간 보안 시스템, 군용 보안 카메라, 군용 보안 시스템, 개인용 컴퓨터(PC, Personal Computer), 노트북 컴퓨터, 휴대형 멀티미디어 플레이어(PMP, Portable Multimedia Player), 무선 통신 단말기(Wireless Communication Terminal), 스마트 폰(Smart Phone), TV 응용 서버와 서비스 서버 등 서버 단말기에 포함된 장치일 수 있으며, 각종 기기 등과 같은 사용자 단말기, 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 복호화 하거나 복호화를 위해 화면 간 또는 화면 내 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미할 수 있다.
또한, 부호화기에 의해 비트스트림(bitstream)으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB, Universal Serial Bus)등과 같은 다양한 통신 인터페이스를 통해 영상 복호화 장치로 전송되어 복호화되어 영상으로 복원되고 재생될 수 있다. 또는 부호화기에 의해 생성된 비트스트림은 메모리에 저장될 수 있다. 상기 메모리는 휘발성 메모리와 비휘발성 메모리를 모두 포함할 수 있다. 본 명세서에서 메모리는 비트스트림을 저장한 기록 매체로 표현될 수 있다.
통상적으로 동영상은 일련의 픽처(Picture)들로 구성될 수 있으며, 각 픽처들은 블록(Block)과 같은 코딩 유닛(coding unit)으로 분할될 수 있다. 또한, 이하에 기재된 픽처라는 용어는 영상(Image), 프레임(Frame) 등과 같은 동등한 의미를 갖는 다른 용어로 대치되어 사용될 수 있음을 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있을 것이다. 그리고 코딩 유닛이라는 용어는 단위 블록, 블록 등과 같은 동등한 의미를 갖는 다른 용어로 대치되어 사용될 수 있음을 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있을 것이다.
이하, 첨부한 도면들을 참조하여, 본 개시의 실시예를 보다 상세하게 설명하고자 한다. 본 개시를 설명함에 있어 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 영상 부호화 장치의 구성을 간략하게 나타낸 예시도이다.
영상 부호화 장치(100)는 영상 분할부(101), 화면 내 예측부(102), 화면 간 예측부(103), 감산부(104), 변환부(105), 양자화부(106), 엔트로피 부호화부(107), 역양자화부(108), 역변환부(109), 가산부(110), 필터부(111) 및 메모리(112)를 포함할 수 있다.
각 장치에서 최적의 정보를 선택하기 위해 RD-Cost(Rate Distortion Cost)를 비교할 수 있다. RD-Cost란 원본 블록과 복원된 블록 간의 왜곡 정보와 예측 모드 전송시에 발생하는 비트량을 이용하여 계산된 비용 값을 의미한다. 이 때 비용 값을 계산하기 위해 SAD(Sum of Absolute Difference), SATD(Sum of Absolute Transformed Difference), SSE(Sum of Square for Error) 등을 이용할 수도 있다.
도 1에 나타난 각 구성부들은 영상 부호화 장치에서 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시한 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성 단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 개시의 본질에서 벗어나지 않는 한 본 개시의 권리범위에 포함된다.
또한, 일부의 구성 요소는 본 개시에서 본질적인 기능을 수행하는 필수적인 구성요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성요소일 수 있다. 본 개시는 단지 성능 향상을 위해 사용되는 구성요소를 제외한 본 개시의 본질을 구현하는 데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성요소를 제외한 필수 구성요소만을 포함한 구조도 본 개시의 권리범위에 포함된다.
영상 분할부(100)는 입력된 영상을 적어도 하나의 블록으로 분할할 수 있다. 이때, 입력된 영상은 픽처, 슬라이스, 타일, 세그먼트 등 다양한 형태와 크기를 가질 수 있다. 블록은 부호화 단위(CU), 예측 단위(PU) 또는 변환 단위(TU)를 의미할 수 있다. 상기 분할은 쿼드 트리(Quadtree), 바이너리 트리(Binary tree) 및 터너리 트리(Ternary tree) 중 적어도 하나에 기반하여 수행될 수 있다. 쿼드 트리는 상위 블록을 너비와 높이가 상위 블록의 절반인 하위 블록으로 사분할하는 방식이다. 바이너리 트리는 상위 블록을 너비 또는 높이 중 어느 하나가 상위 블록의 절반인 하위 블록으로 이분할하는 방식이다. 터너리 트리는 너비 또는 높이 중 어느 하나를 기준으로 상위 블록을 하위 블록으로 삼분할하는 방식이다. 전술한 바이너리 트리 및 터너리 트리 기반의 분할을 통해, 블록은 정방형 뿐만 아니라 비정방형의 형태를 가질 수 있다.
예측부(102, 103)는 화면 간 예측 예측을 수행하는 화면 간 예측부(103)와 화면 내 예측 예측을 수행하는 화면 내 예측부(102)를 포함할 수 있다. 예측 단위에 대해 화면 간 예측 예측을 사용할 것인지 또는 화면 내 예측 예측을 수행할 것인지를 결정하고, 각 예측 방법에 따른 구체적인 정보(예컨대, 화면 내 예측 모드, 모션 벡터, 참조 픽처 등)를 결정할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 구체적인 내용이 정해지는 처리 단위는 다를 수 있다. 예컨대, 예측의 방법과 예측 모드 등은 예측 단위로 결정되고, 예측의 수행은 변환 단위로 수행될 수도 있다.
생성된 예측 블록과 원본 블록 사이의 잔차 값(잔차 블록)은 변환부(105)로 입력될 수 있다. 또한, 예측을 위해 사용한 예측 모드 정보, 모션 벡터 정보 등은 잔차 값과 함께 엔트로피 부호화부(107)에서 부호화되어 복호화기에 전달될 수 있다. 특정한 부호화 모드를 사용할 경우, 예측부(102, 103)를 통해 예측 블록을 생성하지 않고, 원본 블록을 그대로 부호화하여 복호화부에 전송하는 것도 가능하다.
화면 내 예측부(102)는 현재 픽처 내의 화소 정보인 현재 블록 주변의 참조 픽셀 정보를 기초로 예측 블록을 생성할 수 있다. 화면 내 예측 예측이 수행될 현재 블록의 주변 블록의 예측 모드가 화면 간 예측 예측인 경우, 화면 간 예측 예측이 적용된 주변 블록에 포함되는 참조 픽셀을, 화면 내 예측 예측이 적용된 주변의 다른 블록 내의 참조 픽셀로 대체될 수 있다. 즉, 참조 픽셀이 가용하지 않는 경우, 가용하지 않은 참조 픽셀 정보를, 가용한 참조 픽셀 중 적어도 하나의 참조 픽셀로 대체하여 사용할 수 있다.
화면 내 예측에서 예측 모드는 참조 픽셀 정보를 예측 방향에 따라 사용하는 방향성 예측 모드와 방향성 정보를 사용하지 않는 비방향성 모드를 가질 수 있다. 휘도 정보를 예측하기 위한 모드와 색차 정보를 예측하기 위한 모드는 상이할 수 있다. 색차 정보를 예측하기 위해 휘도 정보의 예측에 사용된 화면 내 예측 모드 정보 또는 예측된 휘도 신호 정보가 활용될 수 있다.
화면 내 예측부(102)는 AIS(Adaptive Intra Smoothing) 필터, 참조 화소 보간부, DC 필터를 포함할 수 있다. AIS 필터는 현재 블록의 참조 화소를 필터링하는 필터로서 현재 예측 단위의 예측 모드에 따라 필터의 적용 여부를 적응적으로 결정할 수 있다. 현재 블록의 예측 모드가 AIS 필터링을 수행하지 않는 모드일 경우, AIS 필터는 적용되지 않을 수 있다.
화면 내 예측부(102)의 참조 화소 보간부는 예측 단위의 화면 내 예측 모드가 참조 화소를 보간한 화소 값을 기초로 화면 내 예측을 수행하는 모드일 경우, 참조 화소를 보간하여 분수 단위 위치의 참조 화소를 생성할 수 있다. 현재 예측 단위의 예측 모드가 참조 화소를 보간하지 않고 예측 블록을 생성하는 예측 모드일 경우 참조 화소는 보간되지 않을 수 있다. DC 필터는 현재 블록의 예측 모드가 DC 모드일 경우 필터링을 통해서 예측 블록을 생성할 수 있다.
화면 간 예측부(103)는, 메모리(112)에 저장된 기 복원된 참조 영상과 움직임 정보를 이용하여 예측 블록을 생성한다. 움직임 정보는 예컨대 움직임 벡터, 참조 픽처 인덱스, 리스트 1 예측 플래그, 리스트 0 예측 플래그 등을 포함할 수 있다.
예측부(102, 103)에서 생성된 예측 단위와 예측 단위와 원본 블록 간의 차이 값인 잔차 값(Residual) 정보를 포함하는 잔차 블록이 생성될 수 있다. 생성된 잔차 블록은 변환부(105)로 입력되어 변환될 수 있다.
화면 간 예측부(103)는 현재 픽처의 이전 픽처 또는 이후 픽처 중 적어도 하나의 픽처의 정보를 기초로 예측 블록을 유도할 수 있다. 또한, 현재 픽처 내의 부호화가 완료된 일부 영역의 정보를 기초로, 현재 블록의 예측 블록을 유도할 수도 있다. 본 개시의 일 실시예에 따른 화면 간 예측부(103)는 참조 픽처 보간부, 움직임 예측부, 움직임 보상부를 포함할 수 있다.
참조 픽처 보간부에서는 메모리(112)로부터 참조 픽처 정보를 제공받고 참조 픽처에서 정수 화소 이하의 화소 정보를 생성할 수 있다. 휘도 화소의 경우, 1/4 화소 단위로 정수 화소 이하의 화소 정보를 생성하기 위해 필터 계수를 달리하는 DCT 기반의 8탭 보간 필터(DCT-based Interpolation Filter)가 사용될 수 있다. 색차 신호의 경우 1/8 화소 단위로 정수 화소 이하의 화소 정보를 생성하기 위해 필터 계수를 달리하는 DCT 기반의 4탭 보간 필터(DCT-based Interpolation Filter)가 사용될 수 있다.
움직임 예측부는 참조 픽처 보간부에 의해 보간된 참조 픽처를 기초로 모션 예측을 수행할 수 있다. 모션 벡터를 산출하기 위한 방법으로 FBMA(Full search-based Block Matching Algorithm), TSS(Three Step Search), NTS(New Three-Step Search Algorithm) 등 다양한 방법이 사용될 수 있다. 모션 벡터는 보간된 화소를 기초로 1/2 또는 1/4 화소 단위의 모션 벡터 값을 가질 수 있다. 움직임 예측부에서는 움직임 예측 방법을 다르게 하여 현재 블록의 예측 블록을 예측할 수 있다. 모션 예측 방법으로 스킵(Skip) 방법, 머지(Merge) 방법, AMVP(Advanced Motion Vector Prediction) 방법 등 다양한 방법이 사용될 수 있다.
감산부(104)는, 현재 부호화하려는 블록과 화면 내 예측부(102) 혹은 화면 간 예측부(103)에서 생성된 예측 블록을 감산하여 현재 블록의 잔차 블록을 생성한다.
변환부(105)에서는 잔차 데이터를 포함한 잔차 블록을 DCT, DST, KLT(Karhunen Loeve Transform) 등과 같은 변환 방법을 사용하여 변환할 수 있다. 이때 변환 방법은 잔차 블록을 생성하기 위해 사용된 예측 단위의 화면 내 예측 모드에 기반하여 결정될 수 있다. 예를 들어, 화면 내 예측 모드에 따라, 가로 방향으로는 DCT를 사용하고, 세로 방향으로는 DST를 사용할 수도 있다. 또는 현재 블록의 종횡비, 크기 등에 따라 가로 방향과 세로 방향으로 서로 다른 변환 기법들을 사용할 수도 있다.
양자화부(106)는 변환부(105)에서 주파수 영역으로 변환된 값들을 양자화할 수 있다. 블록에 따라 또는 영상의 중요도에 따라 양자화 계수는 변할 수 있다. 양자화부(106)에서 산출된 값은 역양자화부(108)와 엔트로피 부호화부(107)에 제공될 수 있다.
상기 변환부(105) 및/또는 양자화부(106)는, 영상 부호화 장치(100)에 선택적으로 포함될 수 있다. 즉, 영상 부호화 장치(100)는, 잔차 블록의 잔차 데이터에 대해 변환 또는 양자화 중 적어도 하나를 수행하거나, 변환 및 양자화를 모두 스킵하여 잔차 블록을 부호화할 수 있다. 영상 부호화 장치(100)에서 변환 또는 양자화 중 어느 하나가 수행되지 않거나, 변환 및 양자화 모두 수행되지 않더라도, 엔트로피 부호화부(107)의 입력으로 들어가는 블록을 통상적으로 변환 블록이라 일컫는다.
엔트로피 부호화부(107)는 입력 데이터를 엔트로피 부호화한다. 엔트로피 부호화는 예를 들어, 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 부호화 방법을 사용할 수 있다.
엔트로피 부호화부(107)는 변환 블록의 계수 정보, 블록 타입 정보, 예측 모드 정보, 분할 단위 정보, 예측 단위 정보, 전송 단위 정보, 모션 벡터 정보, 참조 프레임 정보, 블록의 보간 정보, 필터링 정보 등 다양한 정보를 부호화할 수 있다. 변환 블록의 계수들은, 변환 블록 내 서브 블록 단위로, 부호화될 수 있다.
변환 블록의 계수의 부호화를 위하여, 역스캔 순서로 최초의 논제로 계수의 위치를 알리는 신택스 요소(syntax element)인 Last_sig, 서브블록 내에 논제로 계수가 적어도 하나 이상 있는지를 알리는 플래그인 Coded_sub_blk_flag, 논제로 계수인지를 알리는 플래그인 Sig_coeff_flag, 계수의 절대값이 1 보다 큰지를 알리는 플래그인 Abs_greater1_flag, 계수의 절대값이 2 보다 큰지를 알리는 플래그인 Abs_greater2_flag, 계수의 부호를 나타내는 플래그인 Sign_flag 등의 다양한 신택스 요소들이 부호화될 수 있다. 상기 신택스 요소들만으로 부호화되지 않는 계수의 잔여 값은 신택스 요소 remaining_coeff를 통해 부호화될 수 있다.
역양자화부(108) 및 역변환부(109)에서는 양자화부(106)에서 양자화된 값들을 역양자화하고 변환부(105)에서 변환된 값들을 역변환한다. 역양자화부(108) 및 역변환부(109)에서 생성된 잔차 값(Residual)은 예측부(102, 103)에 포함된 움직임 추정부, 움직임 보상부 및 화면 내 예측부(102)를 통해서 예측된 예측 단위와 합쳐져 복원 블록(Reconstructed Block)을 생성할 수 있다. 가산기(110)는, 예측부(102, 103)에서 생성된 예측 블록과, 역변환부(109)를 통해 생성된 잔차 블록을 가산하여 복원 블록을 생성한다.
필터부(111)는 디블록킹 필터, 오프셋 보정부, ALF(Adaptive Loop Filter) 중 적어도 하나를 포함할 수 있다.
디블록킹 필터는 복원된 픽처에서 블록 간의 경계로 인해 생긴 블록 왜곡을 제거할 수 있다. 디블록킹을 수행할지 여부를 판단하기 위해 블록에 포함된 몇 개의 열 또는 행에 포함된 픽셀을 기초로 현재 블록에 디블록킹 필터 적용 여부를 판단할 수 있다. 블록에 디블록킹 필터를 적용하는 경우 필요한 디블록킹 필터링 강도에 따라 강한 필터(Strong Filter) 또는 약한 필터(Weak Filter)를 적용할 수 있다. 또한 디블록킹 필터를 적용함에 있어 수직 필터링 및 수평 필터링 수행 시 수평 방향 필터링 및 수직 방향 필터링이 병행 처리되도록 할 수 있다.
오프셋 보정부는 디블록킹을 수행한 영상에 대해 픽셀 단위로 원본 영상과의 오프셋을 보정할 수 있다. 특정 픽처에 대한 오프셋 보정을 수행하기 위해 영상에 포함된 픽셀을 일정한 수의 영역으로 구분한 후 오프셋을 수행할 영역을 결정하고 해당 영역에 오프셋을 적용하는 방법 또는 각 픽셀의 에지 정보를 고려하여 오프셋을 적용하는 방법을 사용할 수 있다.
ALF(Adaptive Loop Filtering)는 필터링한 복원 영상과 원래의 영상을 비교한 값을 기초로 수행될 수 있다. 영상에 포함된 픽셀을 소정의 그룹으로 나눈 후 해당 그룹에 적용될 하나의 필터를 결정하여 그룹마다 차별적으로 필터링을 수행할 수 있다. ALF를 적용할지 여부에 관련된 정보는 휘도 신호는 부호화 단위(Coding Unit, CU) 별로 전송될 수 있고, 각각의 블록에 따라 적용될 ALF 필터의 모양 및 필터 계수는 달라질 수 있다. 또한, 적용 대상 블록의 특성에 상관없이 동일한 형태(고정된 형태)의 ALF 필터가 적용될 수도 있다.
메모리(112)는 필터부(111)를 통해 산출된 복원 블록 또는 픽처를 저장할 수 있고, 저장된 복원 블록 또는 픽처는 화면 간 예측을 수행할 때 예측부(102, 103)에 제공될 수 있다.
도 2는 영상 부호화 장치의 예측부의 일 실시예를 도시한 예시도이다.
현재 블록의 예측 모드가 화면 내 예측 모드인 경우, 화면 내 예측부(201)는 현재 블록의 주변으로부터 참조 화소를 유도하고 참조 화소를 필터링함으로써, 참조 화소를 생성할 수 있다. 참조 화소는 현재 블록 주변의 복원 화소를 이용하여 결정한다. 현재 블록의 주변에 일부 복원된 화소를 이용할 수 없거나 복원된 화소가 없는 경우, 이용 가능한 참조 화소를 이용할 수 없는 영역에 패딩하거나 화소가 가질 수 있는 값의 범위 중 중간 값을 이용하여 패딩할 수 있다. 참조 화소를 모두 유도한 후, AIS(Adaptive Intra Smoothing) 필터를 이용하여 참조 화소를 필터링을 할 수 있다.
화면 내 예측 모드 탐색부(202)는 M 개의 화면 내 예측 모드 중 하나의 모드를 결정할 수 있다. 여기서 M은 화면 내 예측 모드의 총 개수를 나타낸다. 화면 내 예측 모드는 방향성 예측 모드와 비방향성 예측 모드를 포함한다.
결정된 예측 모드와 필터링된 참조 화소를 이용하여 예측 블록이 생성된다. 화면 내 예측 모드 별로 RD-Cost를 비교하여 비용이 가장 낮은 하나의 화면 내 예측 모드를 선택할 수 있다.
화면 간 예측부(203)는 움직임 정보를 유도하는 방법에 따라 머지 후보 탐색부(204)와 AMVP 후보 탐색부(206)로 나눌 수 있다. 머지 후보 탐색부(204)는 현재 블록 주변에 복원된 블록 중 화면 간 예측이 사용된 참조 블록을 머지 후보로 설정한다. 머지 후보는 부호화/복호화 장치에서 동일한 방법으로 유도하고, 동일한 개수를 사용한다. 머지 후보 개수는 부호화 장치에서 복호화 장치로 전송하거나, 미리 약속된 개수를 사용한다. 현재 블록 주변에 복원된 참조 블록으로부터 약속된 개수만큼의 머지 후보를 유도하지 못한 경우, 현재 픽처가 아닌 다른 픽처에서 현재 블록과 동일한 위치에 존재하는 블록의 움직임 정보를 머지 후보로서 이용할 수 있다. 혹은 현재 픽처를 기준으로 과거 방향의 움직임 정보와 미래 방향의 움직임 정보를 조합해서 부족한 머지 후보로 유도할 수 있다. 또는 다른 참조 픽처의 동일한 위치의 블록을 머지 후보로 설정할 수 있다.
AMVP 후보 탐색부(206)는 현재 블록의 움직임 정보를 움직임 추정부(207)에서 결정한다. 움직임 추정부(207)는 현재 블록과 가장 유사한 예측 블록을 복원된 픽처들로부터 찾는다.
화면 간 예측이 수행되는 경우, 머지 후보 탐색부(204)와 AMVP 후보 탐색부(206) 중 하나를 이용하여 현재 블록의 움직임 정보를 결정하고, 움직임 보상(208)는 결정된 움직임 정보에 기초하여 예측 블록을 생성한다.
본 개시는 블록 단위의 영상 부호화 방법, 장치 및 비트스트림을 저장한 기록 매체에 관한 것으로 아래의 실시예들 중 적어도 하나에 따라 영상을 부호화할 수 있다.
후술되는 실시예들은 복수 블록의 병렬 부호화를 위하여, 주변 블록의 부호화가 완료되기 전 현재 블록의 부호화를 진행할 수 있는 방법, 장치 및 비트스트림을 저장한 기록 매체에 관한 것들이다.
또한, 후술되는 본 개시의 실시예에서 블록 혹은 CU(Coding Unit)이란 한 픽처 내의 MxN 크기의 휘도 화소 영역과 대응되는 MxN 크기 이하의 색차 화소로 이루어지고 부호화/복호화기에서 화면 내 혹은 화면 간 예측 방법의 단위, 움직임 벡터 예측의 단위, 변환 및 양자화 단위, 엔트로피 코딩의 단위일 수 있다.
또한, 후술되는 본 개시의 실시예에서 블록 혹은 CU는 휘도 블록 위조로 설명하되, 본 개시는 색차 블록에도 유사하게 적용될 수 있다.
아래의 실시 예들에서, 블록의 정보 중 적어도 하나에 대한 실시예는 현재 블록의 부호화/복호화 과정 중 어느 하나만에 한정되지 않고, 블록의 정보 중 적어도 하나에 대한 특정 실시예 혹은 실시예들의 조합은 현재 블록의 부호화/복호화 과정 중 적어도 하나 이상에 적용될 수 있다.
또한, 아래의 실시예에서, 블록의 정보 중 일부 정보에 대한 실시예를 나타내고 있지만, 그에 한정되지 않고 블록의 정보 중 적어도 하나에 대한 특정 실시예 혹은 실시예들의 조합은 현재 블록의 부호화/복호화 과정 중 적어도 하나에 적용될 수 있다.
도 3은 본 개시의 일 실시 예에 따른 영상 부호화 방법을 나타내는 흐름도이다. 본 개시의 일 실시 예에 따라, 영상 부호화 장치 및 영상 부호화 방법에 의하여 생성된 비트스트림을 저장한 기록 매체가 구현될 수 있다.
이하, 이전 블록, 현재 블록, 다음 블록은 부호화 순서 및/또는 복호화 순서에 따라 정의된다. 예를 들어, N 번째 블록이 현재 블록일 경우, 다음 블록은 N 번째 블록 이후에 부호화되는 N+1번째 블록 등을 포함할 수 있다. 그리고 이전 블록은 N 번째 블록 이전에 부호화되는 N-1번째 블록 등을 포함할 수 있다. 또한 다음 블록은 N번째 블록뿐만 아니라, 그 이후 부호화되는 하나 이상의 블록을 포함할 수 있다.
현재 블록과 다음 블록은 부호화 순서 및 공간적으로 인접한 블록으로 가정된다. 또한 현재 블록과 다음 블록은 모두 소정의 블록 단위에 포함될 수 있다. 예를 들어, 소정의 블록 단위는 슬라이스, 타일, CTU, CU, MB 등일 수 있다.
구성 300은 N-1 번째 블록의 부호화에 필요한 각 단계를 나타낸다. 그리고 구성 320은 N 번째 블록의 부호화에 필요한 각 단계를 나타낸다. N번째 블록은 N-1번째 블록의 부호화 후에 부호화된다.
구성 300은 단계 302 내지 312를 포함한다. 그리고 구성 320은 단계 322 내지 332를 포함한다. 일 실시 예에 따르면, 구성 300에 따라 현재 블록의 부호화가 완료된 후, 현재 블록을 참조하여 구성 320에 따라 다음 블록의 부호화가 진행될 수 있다. 그러나 본 개시에서는, 구성 300과 구성 320이 동일 시점에 진행될 수 있음을 가정하고, 구성 300의 부호화 프로세스 중간에 발생한 움직임 정보가 구성 320의 부호화 프로세스에 적용되는 실시 예가 설명된다.
단계 302에서, N-1 번째 블록의 움직임 예측이 수행될 수 있다. 예를 들어, N-1 번째 블록에 적용 가능한 예측 모드 후보들에 화면 간 모드가 포함되는 경우, 화면 간 모드에 따른 예측을 위한 움직임 예측이 수행될 수 있다. 단계 322에서는 N 번째 블록의 움직임 예측이 수행될 수 있다. 단계 322는 단계 302와 실질적으로 동일하게 구성될 수 있다.
단계 304에서, N-1 번째 블록의 화면 간 예측에 사용될 수 있는 N-1 번째 블록의 주변 블록의 움직임 정보가 획득될 수 있다.
일 실시 예에 따르면, N-1 번째 블록의 움직임 정보가 필요한 경우, N-1 번째 블록의 주변 블록의 움직임 정보가 획득될 수 있다. 상기 주변 블록의 움직임 정보가 화면 간 예측의 머지 모드(merge mode)에 사용될 경우, 움직임 벡터 차분 (Motion Vector Difference)의 가산 없이 주변 블록의 움직임 정보가 획득될 수 있다.
일 실시 예에 따르면, N-1 번째 블록의 움직임 벡터 예측 (motion vector prediction)이 필요한 경우, N-1 번째 블록의 주변 블록의 움직임 벡터가 획득될 수 있다. N-1 번째 블록의 주변 블록의 움직임 벡터가 N-1 번째 블록의 움직임 벡터 예측자 (motion vector predictor)로 결정될 수 있다. 그리고 상기 움직임 벡터 예측자에 움직임 벡터 차분 (Motion Vector Difference)을 가산하여 N-1 번째 블록의 블록의 움직임 벡터가 결정될 수 있다.
일 실시 예에 따르면, N-1 번째 블록이 현재 픽처, 현재 슬라이스 또는 현재 타일의 첫 번째 블록인 경우, N-1 번째 블록의 움직임 정보가 필요하다고 판단될 수 있다. 또는 N-1 번째 블록이 소정 크기의 블록 단위의 첫 번째 블록인 경우, N-1 번째 블록의 움직임 정보가 필요하다고 판단될 수 있다. 상기 소정 크기는 CTU (Coding Tree Unit) 크기, 최대 CU (Coding Unit) 크기, 또는 쿼드 트리 블록 트리 구조에서 상위 노드에 대한 블록 크기일 수 있다.
N-1 번째 블록이 소정 크기의 블록 단위의 첫 번째 블록인 때, 참조할 주변 블록이 부재할 수 있다. 따라서 이 경우, 주변 블록의 부재할 경우, 예측 움직임 벡터를 결정 하는 방법이 복호화기에 정의되어 있을 수 있다. 따라서, 주변 블록의 부재에 대응하여, 복호화기에 정의된 방법에 따라, N-1 번째 블록의 예측 움직임 벡터가 결정될 수 있다. 예를 들어, 제로 움직임 벡터가 N-1 번째 블록의 예측 움직임 벡터로 결정되거나, N-1 번째 블록의 상위 노드의 글로벌 움직임 벡터가 N-1 번째 블록의 예측 움직임 벡터로 결정될 수 있다. 또한 N-1 번째 블록이 참조할 움직임 정보 또는 움직임 벡터가 부재한 다른 케이스에서도, 예를 들어 참조 블록이 전부 화면 내 예측 모드에 따라 예측된 경우, N-1 번째 블록의 움직임 정보가 필요하다고 판단될 수 있다.
일 실시 예에 따르면, 움직임 정보의 예측 및 유도는 주변 블록의 움직임 정보 또는 시간적으로 이미 부호화된 픽처에 포함된 움직임 정보를 가공 및 보정하여 현재 블록의 움직임 정보로 사용하기 위한 과정일 수 있다. 이 과정에서, 복호화기의 방법을 그대로 이용하여 적어도 하나 이상의 움직임 정보들의 세트가 구성되거나, 부호화기에서 현재 블록이 가용할 수 있는 이미 부호화 완료된 움직임 정보들을 이용하여 적어도 하나 이상의 움직임 정보들의 세트가 구성될 수 있다.
단계 324에서도, 단계 304와 유사하게 N 번째 블록의 주변 블록의 움직임 벡터가 획득될 수 있다. 다만, 단계 324에서 단계 308 및 312에서 N-1번째 블록의 움직임 정보가 결정 및 저장되기 전에, 단계 310에서 저장된 N-1번째 블록의 움직임 정보 세트가 획득될 수 있다. 그리고 N-1번째 블록의 움직임 정보 세트에 기초하여, N 번째 블록의 부호화가 수행될 수 있다.
일 실시 예에 따르면, N 번째 블록의 움직임 벡터의 예측 또는 유도가 필요하지 않는 경우, 단계 324에서, 움직임 벡터 유도 과정을 수행하지 않고 이전 블록인 N-1번째 블록에 대한 단계 310에서 유도된 움직임 정보 세트 중, 하나가 이용될 수 있다.
일 실시 예에 따르면, N-1번째 블록의 단계 310에서 N번째 블록의 움직임 정보가 유도된 경우, N번째 블록의 단계 324에서, 단계 310에서 미리 유도된 N번째 블록의 움직임 정보가 획득될 수 있다. 따라서, 단계 324에서는 움직임 정보의 유도 없이, 단계 310에서 미리 유도된 N번째 블록의 움직임 정보가 사용될 수 있다. 그러므로, 현재 블록의 단계 324에서는 단계 310에서 미리 구해진 움직임 정보 세트가 획득되는 바, 움직임 벡터의 예측 또는 움직임 정보 유도 과정이 생략될 수 있다. 따라서, 블록당 상기 부호화 시간 감소로 인하여 블록 부호화의 처리율(Throughput)을 향상시킬 수 있다.
여기서, 처리율은 CTU 하나를 부호화 하는데 소요되는 시간 또는 현재 블록의 움직임 벡터 예측 또는 유도하는 시간을 의미한다. 그리고 처리율이 향상됨은 상기 시간이 줄어드는 것을 의미할 수 있다.
단계 306에서, 움직임 벡터 예측 및 움직임 정보 유도를 통해 구해진 움직임 정보를 사용하는 움직임 정보 세트가 정의된다.
일 실시 예에 따르면, 부호화기가 요구하는 압축 효율과 처리율 등을 고려하여, 현재 블록의 움직임 정보 세트의 각 모드들이 사용하는 움직임 정보의 수가 결정될 수 있다. 또한, 부호화기가 요구하는 압축 효율과 처리율 등을 고려하여, 움직임 정보 후보들 중에서 몇 개의 움직임 정보를 사용할지 결정될 수 있다.
일 실시 예에 따르면, 단계 304에서 유도된 움직임 정보의 수가 부호화기에서 허용하는 개수보다 많은 경우, 움직임 정보 세트는 부호화기 또는 복호화기에 의하여 정의된 순서에 의해 결정될 수 있다.
예를 들어, 단계 306에서 부호화기가 현재 블록의 모드 결정 과정에서 허용하는 움직임 정보의 개수가 2개라면, 유도된 움직임 정보의 수가 2개를 초과하더라도 부호화기는 소정의 순서에 따라 2개의 움직임 정보만 현재 블록의 움직임 정보 세트로 정의될 수 있다. 상기 2개의 움직임 정보는 현재 블록의 바로 상단에 존재하는 움직임 정보와 바로 좌측에 존재하는 움직임 정보를 나타낼 수 있다.
다른 예로, 단계 306에서 부호화기가 현재 블록의 모드 결정 과정에서 허용하는 움직임 정보의 개수가 2개라면, 복호화기에서 정의된 방법에 따라, 움직임 정보 또는 움직임 벡터의 세트를 구성하고 첫번째와 두번째의 움직임 정보 또는 움직임 벡터를 현재 블록의 움직임 정보 세트에 포함시킬 수 있다.
단계 326은 단계 306과 마찬가지 방법으로 N 번째 블록에 대하여 구현될 수 있다.
단계 308에서, N-1 번째 블록의 모드가 결정된다. 여기서, 현재 블록의 모드는 율-왜곡 최적화에 따라 결정될 수 있다. 율-왜곡 최적화 (RDO; Rate-Distortion Optimization)는 왜곡도와 발생 비트량 등을 고려하여 적어도 하나 이상의 후보 모드들 중 최적의 모드를 선택하는 방법이다. 선택된 모드에 대한 정보는 엔트로피 부호화를 통해 비트스트림으로 전송될 수 있다. 여기서, N-1 번째 블록의 각 모드에 대하여, 움직임 벡터 예측 또는 움직임 벡터 유도를 위해 복호화기에서 정의된 과정을 이용하여 움직임 벡터들의 세트가 구성될 수 있다. 그리고 구성된 움직임 벡터들의 세트에 따라 최적의 움직임 벡터 예측 방법 또는 움직임 벡터 유도 방법이 선택될 수 있다. N 번째 블록에 대한 단계 328은 단계 308과 동일한 방법으로 수행될 수 있다.
단계 308과 함께. N-1번째 블록의 단계 310에서 N번째 블록에 대한 움직임 벡터 예측 또는 유도 과정의 일부분이 이미 처리될 수 있다. 따라서, N-1번 째 블록의 복호화 과정에서 복호화기에서 정의된 과정 중 단계 310에서 이미 처리된 부분을 제외한 나머지 과정만이 단계 324에서 진행됨으로써 처리율이 향상될 수 있다.
도 4는 64x64 크기의 블록(400)의 움직임 벡터 예측 또는 유도를 위해 사용하는 주변 움직임 벡터 위치의 일 실시 예를 나타낸다. 블록(400)의 특정 화면 간 예측 모드 및 움직임 벡터 예측 또는 유도는 이미 부호화가 완료된 소정 위치의 인접 블록의 움직임 정보를 이용하여 결정될 수 있다. 일 실시 예에 따르면, 상기 소정 위치는 도 4에 표시된 위치 (402) 내지 (418) 중 적어도 하나를 포함할 수 있다.
복호화기는 화면 간 예측 모드의 움직임 벡터 세트의 생성을 위하여 위치 (402) 내지 (418)의 움직임 정보를 순서대로 이용할 수 있다. 단계 308에서, 위치 (402) 내지 (418)의 움직임 정보에 따라 복호화기에서 정의된 방법에 따라 움직임 벡터 세트를 생성할 수 있다.
또한, 단계 310에서도 마찬가지로, 위치 (402) 내지 (418)의 움직임 벡터 정보를 이용하여 N 번째 블록의 화면 간 예측 모드의 움직임 벡터 세트를 생성할 수 있다. 실시 예에 따라, 위치 (402) 내지 (418)의 일부 위치만 단계 310의 움직임 벡터 세트 생성에 사용될 수 있다. 예를 들어, 위치 (402) 내지 (408)의 위치만 움직임 벡터 세트 생성에 사용될 수 있다. 단계 308에서 이용되는 위치들 (402) 내지 (418) 중 일부만 단계 310에서 이용됨으로써, 다음 블록에서 참조되는 현재 블록에 대한 움직임 벡터 세트의 생성 시간을 감소할 수 있다. 따라서, 상기 생성 시간 감소로 인하여 블록 부호화의 처리율(Throughput)을 향상시킬 수 있다.
일 실시 예에 따르면, 현재 블록의 상단 인접 블록이 현재 블록과 다른 CTU 또는 MB (Macro Block)에 포함된 경우, 라인 버퍼에 저장된 현재 블록의 상단 인접 블록의 주변 움직임 예측 정보가 획득될 수 있다. 라인 버퍼에서 움직임 벡터 정보들을 로드하는 경우, 외부 메모리에서 데이터를 가져와야 하기 때문에 소요 시간이 증가하거나 지연 강인성 (Latency Tolerance)이 감소할 수 있다. 그러므로 N-1번째 블록에 대한 단계 310 또는 N번째 블록에 대한 단계 328에서 상단 위치의 움직임 벡터 예측 정보들의 라인 버퍼로부터의 획득이 한 번에 모아서 수행될 수 있다.
단계 308이 처리됨과 함께 단계 310에서, N번째 블록의 부호화에 사용될 움직임 정보가 미리 유도되어 저장될 수 있다. 단계 310에서, N번째 블록에 대한 움직임 정보가 미리 유도됨으로써 처리율이 향상될 수 있다. 실시 예에 따라서, 단계 310에서, N번째 블록뿐만 아니라, 그 이후에 부호화될 다음 블록에 대한 움직임 벡터가 N-1번째 블록으로부터 유도될 수 있다.
단계 310에서, N번째 블록의 움직임 벡터 정보를 유도할 때, N-1번째 블록의 모드가 아직 결정되지 않은 상태이다. 그러므로 단계 306에서 구해진 움직임 정보 세트들의 각 움직임 벡터 정보들에 대해서, N-1번째 블록의 움직임 벡터 정보가 단계 302에서 결정된 움직임 벡터 정보로 결정되었다고 가정하고 N번째 블록의 움직임 정보를 유도할 수 있다.
예를 들어, 단계 310에서 N-1번째 블록의 화면 간 예측 모드가 3개 (Merge 0번 모드, Merge 1번 모드, MVP 모드)일 경우, 유도해야 할 움직임 벡터 세트가 3개이다. 따라서, N번째 블록의 움직임 벡터 정보 유도 과정이 각 화면 간 예측 모드에 대하여 각각 수행되고, 그 결과들이 저장될 수 있다. 예를 들어, 현재 블록이 Merge 0번 모드라고 가정하여, 1번 움직임 벡터 세트가 생성될 수 있다. 그리고 현재 블록이 Merge 1번 모드라고 가정하여, 2번 움직임 벡터 세트가 생성될 수 있다. 그리고 현재 블록이 MVP 번 모드라고 가정하여, 3번 움직임 벡터 세트가 생성될 수 있다
일 실시 예에 따르면, 단계 310에서, N-1번째 블록의 예측 모드가 화면 내 예측도 유도될 가능성이 있을 때, N번째 블록이 화면 내 예측 모드라고 가정하여 추가적인 움직임 벡터 세트가 생성될 수 있다.
단계 308에서 N-1번째 블록의 화면 간 예측 모드 및 움직임 벡터가 결정될 경우, N번째 블록의 단계 324에서는 N-1번째 블록의 단계 310에서 생성한 움직임 벡터 세트 중 단계 308에서 결정된 화면 간 예측 모드 및 움직임 벡터에 대응되는 움직임 벡터 세트가 획득될 수 있다. 단계 310에서 생성된 움직임 벡터 세트가 단계 324에서 획득됨으로써, 움직임 벡터 유도 과정을 생략하여 처리율이 향상될 수 있다.
예를 들어, N-1번째 블록의 단계 308에서 Merge 1번 모드가 선택이 되었다면, N번째 블록의 단계 324서는 움직임 벡터 유도 과정을 생략하고 N-1번째 블록의 단계 310에서 생성한 3개의 움직임 벡터 세트 중, 2번 움직임 벡터 세트가 획득되어 사용될 수 있다.
N 번째 블록에 대한 단계 330은 단계 310과 동일한 방법으로 수행될 수 있다. 그리고 단계 330에서 생성된 움직임 정보는 N+1번째 블록과 같이 N 번째 블록 이후에 부호화되는 블록들에 사용될 수 있다.
단계 312에서, 단계 308에서 결정된 N-1번째 블록의 화면 간 예측 모드 및 움직임 벡터 등이 저장된다. N 번째 블록에 대한 단계 332 역시 단계 312와 동일한 방법으로 수행될 수 있다.
도 5는 부호화기의 처리율을 향상시키기 위한 비디오 부호화 방법의 일 실시 예를 나타낸다.
단계 502에서, 현재 블록의 주변 블록의 움직임 정보이 획득되고, 상기 현재 블록의 움직임 정보의 유도가 필요한 경우, 상기 현재 블록의 움직임 정보이 유도될 수 있다.
일 실시 예에 따르면, 상기 현재 블록의 이전 블록의 부호화 과정에서 상기 현재 블록에 대한 복수의 움직임 정보 세트가 유도된 경우, 상기 복수의 움직임 정보 세트 중 하나가 획득될 수 있다.
일 실시 예에 따르면, 상기 획득된 움직임 정보 세트에, 상기 현재 블록의 참조 위치로부터 도출된 움직임 정보가 더 추가될 수 있다.
일 실시 예에 따르면, 상기 이전 블록에 적용된 화면 간 예측 모드 및 움직임 정보에 기초하여, 상기 복수의 움직임 정보 세트 중 하나가 획득될 수 있다.
일 실시 예에 따르면, 상기 현재 블록의 움직임 정보를 유도하는 단계에 있어서, 상기 현재 블록이 소정의 이미지 단위의 첫 번째 블록인 경우, 상기 현재 블록의 움직임 정보가 유도될 수 있다. 상기 소정의 이미지 단위는, 픽처, 슬라이스, 타일, CTU, 최대 CU 크기의 CU, 또는 MB일 수 있다.
단계 504에서, 상기 현재 블록의 움직임 정보에 기초하여, 상기 현재 블록의 하나 이상의 움직임 정보 세트가 결정될 수 있다.
단계 506에서, 상기 현재 블록의 상기 하나 이상의 움직임 정보 세트에 기초하여, 상기 현재 블록의 다음 부호화 순서인 다음 블록의 움직임 정보가 유도될 수 있다.
일 실시 예에 따르면, 상기 현재 블록의 상기 하나 이상의 움직임 정보 세트 중 소정의 움직임 정보가 선택되고, 상기 소정의 움직임 정보가 포함된 상기 다음 블록의 움직임 정보 세트가 유도될 수 있다.
일 실시 예에 따르면, 상기 현재 블록의 상기 하나 이상의 움직임 정보 세트 중 복수의 움직임 정보가 선택될 수 있다. 그리고 상기 복수의 움직임 정보 각각에 대하여, 상기 다음 블록의 복수의 움직임 정보 세트가 유도될 수 있다.
일 실시 예에 따르면, 상기 현재 블록이 화면 내 예측됨을 가정하여, 상기 다음 블록의 움직임 정보 세트가 추가적으로 유도될 수 있다.
일 실시 예에 따르면, 상기 다음 블록의 움직임 정보 세트는 상기 다음 블록의 소정의 인접 위치에 대응되는 블록의 움직임 정보를 포함할 수 있다. 그리고 상기 소정의 인접 위치는, 화면 간 예측 모드에서 참조하는 복수의 참조 위치 중 일부일 수 있다.
일 실시 예에 따르면, 상기 다음 블록이 상기 다음 블록이 포함된 이미지 단위의 상단에 위치할 때, 상기 다음 블록의 상단 블록들의 움직임 정보를 포함하는 라인 버퍼로부터 상기 다음 블록의 상단 블록의 움직임 정보가 획득될 수 있다. 그리고 상기 다음 블록의 상단 블록의 움직임 정보에 기초하여, 상기 다음 블록의 움직임 정보 세트가 유도될 수 있다.
단계 508에서, 상기 현재 블록의 상기 하나 이상의 움직임 정보 세트에 기초하여, 상기 현재 블록의 화면 간 예측 모드 및 움직임 벡터가 결정될 수 있다.
본 개시에서, 도 5의 비디오 부호화 방법에 의하여 생성된 비트스트림이 저장된 컴퓨터로 판독가능한 기록매체가 제공될 수 있다. 또한 도 5의 비디오 부호화 방법에 의하여 생성된 비트스트림은 컴퓨터로 판독가능한 기록매체에 저장되거나, 전송될 수 있다.
본 개시에서, 도 5의 비디오 부호화 방법을 구현하는 명령(instruction)이 비디오 부호화 장치에 의하여 실행될 수 있다. 그리고 비디오 부호화 장치는 하나 이상의 프로세서 및 하나 이상의 메모리 디바이스를 포함하여, 상기 명령을 수행할 수 있다. 상기 도 5의 비디오 부호화 방법을 구현하는 명령이 저장된 컴퓨터로 판독가능한 기록매체가 제공될 수 있다.
본 개시에서, 도 5의 비디오 부호화 방법을 구현하는 비디오 부호화 장치는 2개 이상의 부호화기로 구현될 수 있다. 각 부호화기는 서로 다른 블록을 부호화할 수 있다. 2개 이상의 부호화기 중 부호화 순서가 앞선 제1 블록을 부호화하는 제1 부호화기는 제1 블록의 움직임 정보의 부호화 프로세스에서, 상기 제1 블록의 움직임 정보를 결정하기 위한 상기 제1 블록의 상기 하나 이상의 움직임 정보 세트에 기초하여, 제2 부호화기가 부호화하는 상기 제1 블록 다음으로 부호화되는 제2 블록의 움직임 정보 세트를 유도할 수 있다.
본 개시에서, 상기 제1 부호화기와 상기 제2 부호화기는 동일 시점에 각각 제1 블록과 제2 블록을 부호화할 수 있다. 상기 제2 블록이 제1 블록에 인접하여 상기 제1 블록에 의존적으로 부호화될 경우, 상기 제2 부호화기의 제2 블록 부호화는 상기 제1 부호화기의 제1 블록 부호화의 진행 정도에 따라 진행된다. 따라서, 상기 제1 부호화기는 제1 블록의 부호화가 완료되기 전에 상기 제2 블록의 상기 하나 이상의 움직임 정보 세트를 결정하여, 제2 부호화기에 전달함으로써, 제2 부호화기는 제1 블록의 부호화의 완료 이전에 제2 블록 부호화를 조기에 진행할 수 있다.
본 개시에서 설명된 바와 같이, 현재 블록의 부호화가 완전히 완료되기 전에, 현재 블록의 부호화를 위하여 생성된 하나 이상의 움직임 정보 세트의 움직임 정보 후보를 다음 블록의 부호화에 사용함으로써, 블록의 처리율이 증가할 수 있다. 그리고 복수의 부호화기가 각기 다른 블록을 부호화함으로써, 병렬 부호화가 구현되어, 전체적인 영상 부호화 속도가 향상되는 장점이 있다.
본 개시의 다양한 실시예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.
또한, 본 개시의 다양한 실시예는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 범용 프로세서(general processor), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다.

Claims (20)

  1. 비디오 부호화 방법에 있어서,
    현재 블록의 움직임 정보를 유도하는 단계;
    상기 현재 블록의 움직임 정보에 기초하여, 상기 현재 블록의 하나 이상의 움직임 정보 세트를 결정하는 단계;
    상기 현재 블록의 상기 하나 이상의 움직임 정보 세트에 기초하여, 상기 현재 블록의 다음 부호화 순서인 다음 블록의 움직임 정보를 유도하는 단계; 및
    상기 현재 블록의 상기 하나 이상의 움직임 정보 세트에 기초하여, 상기 현재 블록의 화면 간 예측 모드 및 움직임 벡터를 결정하는 단계를 포함하는 비디오 부호화 방법.
  2. 제1항에 있어서,
    상기 현재 블록의 움직임 정보를 유도하는 단계에 있어서,
    상기 현재 블록의 이전 블록의 부호화 과정에서 상기 현재 블록에 대한 복수의 움직임 정보 세트가 유도된 경우, 상기 복수의 움직임 정보 세트 중 하나를 획득하는 것을 특징으로 하는 비디오 부호화 방법.
  3. 제2항에 있어서,
    상기 이전 블록에 적용된 화면 간 예측 모드 및 움직임 정보에 기초하여, 상기 복수의 움직임 정보 세트 중 하나가 획득되는 것을 특징으로 하는 비디오 부호화 방법.
  4. 제1항에 있어서,
    상기 현재 블록의 움직임 정보를 유도하는 단계에 있어서,
    상기 현재 블록이 소정의 이미지 단위의 첫 번째 블록인 경우 또는 상기 현재 블록의 이전 블록의 부호화 과정에서 상기 현재 블록에 대한 복수의 움직임 정보 세트가 유도되지 않은 경우, 상기 현재 블록의 움직임 정보를 유도되는 것을 특징으로 하는 비디오 부호화 방법.
  5. 제4항에 있어서,
    상기 소정의 이미지 단위는,
    픽처, 슬라이스, 타일, CTU(Coding Tree Unit), 최대 CU(Coding Unit) 크기의 CU, 또는 MB(Macroblock)인 것을 특징으로 하는 비디오 부호화 방법.
  6. 제1항에 있어서,
    상기 다음 블록의 움직임 정보를 유도하는 단계에 있어서,
    상기 현재 블록의 상기 하나 이상의 움직임 정보 세트 중 소정의 움직임 정보를 선택하는 단계;
    상기 소정의 움직임 정보가 포함된 상기 다음 블록의 움직임 정보 세트를 유도하는 단계를 포함하는 것을 특징으로 하는 비디오 부호화 방법.
  7. 제1항에 있어서,
    상기 다음 블록의 움직임 정보를 유도하는 단계에 있어서,
    상기 현재 블록의 상기 하나 이상의 움직임 정보 세트 중 복수의 움직임 정보를 선택하는 단계;
    상기 복수의 움직임 정보 각각에 대하여, 상기 다음 블록의 복수의 움직임 정보 세트를 유도하는 단계를 포함하는 것을 특징으로 하는 비디오 부호화 방법.
  8. 제1항에 있어서,
    상기 다음 블록의 움직임 정보를 유도하는 단계에 있어서,
    상기 현재 블록이 화면 내 예측됨을 가정하여, 상기 다음 블록의 움직임 정보 세트를 유도하는 단계를 포함하는 것을 특징으로 하는 비디오 부호화 방법.
  9. 제6항 내지 제8항 중 어느 한 항에 있어서,
    상기 유도되는 다음 블록의 움직임 정보 세트는 상기 다음 블록의 소정의 인접 위치에 대응되는 블록의 움직임 정보를 포함하고,
    상기 소정의 인접 위치는, 화면 간 예측 모드에서 참조하는 복수의 참조 위치 중 일부인 것을 특징으로 하는 비디오 부호화 방법.
  10. 제2항에 있어서,
    상기 획득된 움직임 정보 세트에, 상기 현재 블록의 참조 위치로부터 도출된 움직임 정보를 더 추가하는 단계를 포함하는 것을 특징으로 하는 비디오 부호화 방법.
  11. 제1항에 있어서,
    상기 다음 블록의 움직임 정보를 유도하는 단계에 있어서,
    상기 다음 블록이 상기 다음 블록이 포함된 이미지 단위의 상단에 위치할 때, 상기 다음 블록의 상단 블록들의 움직임 정보를 포함하는 라인 버퍼로부터 상기 다음 블록의 상단 블록의 움직임 정보를 획득하는 단계; 및
    상기 다음 블록의 상단 블록의 움직임 정보에 기초하여, 상기 다음 블록의 움직임 정보 세트를 유도하는 단계를 포함하는 것을 특징으로 하는 비디오 부호화 방법.
  12. 제1 항 내지 제11항 중 어느 한 항의 비디오 부호화 방법에 의하여 부호화된 비디오의 비트스트림을 저장하는 비트스트림 저장 방법.
  13. 제1 항 내지 제11항 중 어느 한 항의 비디오 부호화 방법에 의하여 부호화된 비디오의 비트스트림을 저장하는 컴퓨터로 판독가능한 기록매체.
  14. 제1 항 내지 제11항 중 어느 한 항의 비디오 부호화 방법에 의하여 부호화된 비디오의 비트스트림을 전송하는 비트스트림 전송 방법.
  15. 하나 이상의 메모리와 하나 이상의 프로세서를 포함하는 비디오 부호화 장치에 있어서,
    비디오 부호화 방법을 구현하기 위한 명령(instruction)이 저장된 하나 이상의 메모리; 및
    상기 하나 이상의 메모리에 저장된 명령을 실행하는 하나 이상의 프로세서를 포함하고,
    상기 명령은,
    현재 블록의 움직임 정보를 유도하는 단계;
    상기 현재 블록의 움직임 정보에 기초하여, 상기 현재 블록의 하나 이상의 움직임 정보 세트를 결정하는 단계;
    상기 현재 블록의 상기 하나 이상의 움직임 정보 세트에 기초하여, 상기 현재 블록의 다음 부호화 순서인 다음 블록의 움직임 정보를 유도하는 단계; 및
    상기 현재 블록의 상기 하나 이상의 움직임 정보 세트에 기초하여, 상기 현재 블록의 화면 간 예측 모드 및 움직임 벡터를 결정하는 단계를 포함하는 것을 특징으로 하는 비디오 부호화 장치.
  16. 제15항에 있어서,
    상기 명령의 상기 현재 블록의 움직임 정보를 유도하는 단계에 있어서,
    상기 현재 블록의 이전 블록의 부호화 과정에서 상기 현재 블록에 대한 복수의 움직임 정보 세트가 유도된 경우, 상기 복수의 움직임 정보 세트 중 하나를 획득하는 것을 특징으로 하는 비디오 부호화 장치.
  17. 제15항에 있어서,
    상기 명령의 상기 현재 블록의 움직임 정보를 유도하는 단계에 있어서,
    상기 현재 블록이 소정의 이미지 단위의 첫 번째 블록인 경우, 상기 현재 블록의 움직임 정보를 유도되는 것을 특징으로 하는 비디오 부호화 장치.
  18. 제15항에 있어서,
    상기 명령의 상기 다음 블록의 움직임 정보를 유도하는 단계에 있어서,
    상기 현재 블록의 상기 하나 이상의 움직임 정보 세트 중 소정의 움직임 정보를 선택하는 단계;
    상기 소정의 움직임 정보가 포함된 상기 다음 블록의 움직임 정보 세트를 유도하는 단계를 포함하는 것을 특징으로 하는 비디오 부호화 장치.
  19. 제1 부호화기와 제2 부호화기를 포함하는 복수의 복호화기를 포함하는 비디오 부호화 장치에 있어서,
    상기 제1 부호화기는, 영상의 제1 블록의 움직임 정보를 부호화하고, 상기 제1 블록의 움직임 정보를 결정하기 위한 상기 제1 블록의 상기 하나 이상의 움직임 정보 세트에 기초하여, 상기 제1 블록 다음으로 부호화되는 제2 블록의 움직임 정보 세트를 유도하고,
    상기 제2 부호화기는, 상기 제1 부호화기에서 유도된 상기 제2 블록의 움직임 정보 세트에 따라, 상기 제2 블록의 움직임 정보를 부호화하는 것을 특징으로 하는 비디오 복호화 장치.
  20. 비디오 부호화 방법을 구현하기 위한 명령이 저장된 컴퓨터로 판독가능한 기록매체에 있어서,
    상기 비디오 부호화 방법은,
    현재 블록의 움직임 정보를 유도하는 단계;
    상기 현재 블록의 움직임 정보에 기초하여, 상기 현재 블록의 하나 이상의 움직임 정보 세트를 결정하는 단계;
    상기 현재 블록의 상기 하나 이상의 움직임 정보 세트에 기초하여, 상기 현재 블록의 다음 부호화 순서인 다음 블록의 움직임 정보를 유도하는 단계; 및
    상기 현재 블록의 상기 하나 이상의 움직임 정보 세트에 기초하여, 상기 현재 블록의 화면 간 예측 모드 및 움직임 벡터를 결정하는 단계를 포함하는 컴퓨터로 판독가능한 기록매체.
KR1020230018899A 2022-10-27 2023-02-13 처리율 향상을 위한 영상 부호화 방법, 장치 및 비트스트림을 저장한 기록 매체 KR20240059507A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20220140049 2022-10-27
KR1020220140049 2022-10-27

Publications (1)

Publication Number Publication Date
KR20240059507A true KR20240059507A (ko) 2024-05-07

Family

ID=91078289

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230018899A KR20240059507A (ko) 2022-10-27 2023-02-13 처리율 향상을 위한 영상 부호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Country Status (1)

Country Link
KR (1) KR20240059507A (ko)

Similar Documents

Publication Publication Date Title
US11368675B2 (en) Method and device for encoding and decoding intra-frame prediction
CN111213379B (zh) 用于将图像编码/解码的方法、装置和存储比特流的记录介质
KR20230113251A (ko) 영상 복호화 방법 및 컴퓨터로 읽을 수 있는 기록 매체
CN112369034B (zh) 使用合并候选的视频编码方法和装置
CN112385231B (zh) 图像编码/解码方法和装置
US11729410B2 (en) Image decoding method/apparatus, image encoding method/apparatus, and recording medium storing bitstream
KR20190116101A (ko) 어파인 모델 기반의 영상 부호화/복호화 방법 및 장치
CN113473133A (zh) 利用几何分区geo模式进行预测的方法和装置
US20230283795A1 (en) Video coding method and device using motion compensation of decoder side
KR20240059507A (ko) 처리율 향상을 위한 영상 부호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR20200081207A (ko) 움직임정보 표현 방법 및 이를 이용한 영상 복호화 장치
KR101782155B1 (ko) 움직임 벡터 정밀성을 이용하는 영상 부호화 및 복호화 방법과 영상 복호화 장치
KR20230144426A (ko) 영상 부호화/복호화 방법 및 장치
WO2023158765A1 (en) Methods and devices for geometric partitioning mode split modes reordering with pre-defined modes order
KR20210124069A (ko) 영상 부호화 및 복호화 방법 및 장치