[go: up one dir, main page]

KR102486026B1 - Method and apparatus for parallel entropy encoding/decoding - Google Patents

Method and apparatus for parallel entropy encoding/decoding Download PDF

Info

Publication number
KR102486026B1
KR102486026B1 KR1020220121783A KR20220121783A KR102486026B1 KR 102486026 B1 KR102486026 B1 KR 102486026B1 KR 1020220121783 A KR1020220121783 A KR 1020220121783A KR 20220121783 A KR20220121783 A KR 20220121783A KR 102486026 B1 KR102486026 B1 KR 102486026B1
Authority
KR
South Korea
Prior art keywords
bitstream
partial
information
bin
decoder
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020220121783A
Other languages
Korean (ko)
Other versions
KR20220136969A (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 KR20220136969A publication Critical patent/KR20220136969A/en
Application granted granted Critical
Publication of KR102486026B1 publication Critical patent/KR102486026B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/124Quantisation
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)

Abstract

본 발명에 따른 엔트로피 복호화 방법은, 부호화기로부터 수신된 비트스트림의 헤더(header)로부터 스케쥴링 정보를 도출하는 단계, 도출된 스케쥴링 정보를 이용하여, 수신된 비트스트림을 구성하는 부분 비트스트림을 역 이진화(de-binarization) 순서에 따라 재정렬하는 단계, 재정렬된 부분 비트스트림을 기반으로, 비트스트림에 대응하는 빈(bin)을 도출하는 단계 및 도출된 빈을 역 이진화하여 구문 요소(syntax element)를 획득하는 단계를 포함한다. 본 발명에 의하면, 영상 부호화/복호화 효율이 향상될 수 있다.An entropy decoding method according to the present invention comprises the steps of deriving scheduling information from a header of a bitstream received from an encoder, and inverse-binarizing a partial bitstream constituting the received bitstream using the derived scheduling information ( Rearranging in the order of de-binarization, deriving a bin corresponding to the bitstream based on the rearranged partial bitstream, and inverse binarizing the derived bin to obtain a syntax element. Include steps. According to the present invention, image encoding/decoding efficiency can be improved.

Description

병렬 엔트로피 부호화/복호화 방법 및 장치 {METHOD AND APPARATUS FOR PARALLEL ENTROPY ENCODING/DECODING}Parallel entropy encoding/decoding method and apparatus {METHOD AND APPARATUS FOR PARALLEL ENTROPY ENCODING/DECODING}

본 발명은 영상 처리에 관한 것으로서, 보다 상세하게는 엔트로피 부호화/복호화 방법 및 장치에 관한 것이다.The present invention relates to image processing, and more particularly, to an entropy encoding/decoding method and apparatus.

최근 HD(High Definition) 해상도를 가지는 방송 서비스가 국내뿐만 아니라 세계적으로 확대되면서, 많은 사용자들이 고해상도, 고화질의 영상에 익숙해지고 있으며 이에 따라 많은 기관들이 차세대 영상기기에 대한 개발에 박차를 가하고 있다. 또한 HDTV와 더불어 HDTV의 4배 이상의 해상도를 갖는 UHD(Ultra High Definition)에 대한 관심이 증대되면서 보다 높은 해상도, 고화질의 영상에 대한 압축기술이 요구되고 있다.Recently, as broadcasting services with high definition (HD) resolution are expanded not only domestically but also globally, many users are getting used to high-resolution and high-definition images, and many organizations are accelerating the development of next-generation video equipment. In addition, as interest in UHD (Ultra High Definition) having a resolution four times higher than that of HDTV increases along with HDTV, a compression technology for a higher resolution and higher quality image is required.

영상 압축을 위해, 시간적으로 이전 및/또는 이후의 픽쳐로부터 현재 픽쳐에 포함된 픽셀값을 예측하는 인터(inter) 예측 기술, 현재 픽쳐 내의 픽셀 정보를 이용하여 현재 픽쳐에 포함된 픽셀값을 예측하는 인트라(intra) 예측 기술, 출현 빈도가 높은 심볼(symbol)에 짧은 부호를 할당하고 출현 빈도가 낮은 심볼에 긴 부호를 할당하는 엔트로피 부호화 기술 등이 사용될 수 있다.For image compression, inter prediction technology predicts pixel values included in the current picture from temporally previous and/or subsequent pictures, and predicts pixel values included in the current picture using pixel information in the current picture. An intra prediction technique, an entropy coding technique in which short codes are assigned to symbols with a high frequency of occurrence and long codes are assigned to symbols with a low frequency of occurrence may be used.

본 발명의 기술적 과제는 영상 부호화/복호화 효율을 향상시킬 수 있는 영상 부호화 방법 및 장치를 제공함에 있다.A technical problem of the present invention is to provide an image encoding method and apparatus capable of improving image encoding/decoding efficiency.

본 발명의 다른 기술적 과제는 영상 부호화/복호화 효율을 향상시킬 수 있는 영상 복호화 방법 및 장치를 제공함에 있다.Another technical problem of the present invention is to provide an image decoding method and apparatus capable of improving image encoding/decoding efficiency.

본 발명의 또 다른 기술적 과제는 영상 부호화/복호화 효율을 향상시킬 수 있는 엔트로피 부호화 방법 및 장치를 제공함에 있다.Another technical problem of the present invention is to provide an entropy encoding method and apparatus capable of improving image encoding/decoding efficiency.

본 발명의 또 다른 기술적 과제는 영상 부호화/복호화 효율을 향상시킬 수 있는 엔트로피 복호화 방법 및 장치를 제공함에 있다.Another technical problem of the present invention is to provide an entropy decoding method and apparatus capable of improving image encoding/decoding efficiency.

1. 본 발명의 일 실시 형태는 엔트로피 복호화 방법이다. 상기 방법은 부호화기로부터 수신된 비트스트림의 헤더(header)로부터 스케쥴링 정보를 도출하는 단계, 상기 도출된 스케쥴링 정보를 이용하여, 상기 수신된 비트스트림을 구성하는 부분 비트스트림을 역 이진화(de-binarization) 순서에 따라 재정렬하는 단계, 상기 재정렬된 부분 비트스트림을 기반으로, 상기 비트스트림에 대응하는 빈(bin)을 도출하는 단계 및 상기 도출된 빈을 역 이진화하여 구문 요소(syntax element)를 획득하는 단계를 포함하고, 상기 스케쥴링 정보는, 상기 수신된 비트스트림을 구성하는 부분 비트스트림 각각의 위치에 관한 정보 및 상기 부분 비트스트림의 역이진화 순서에 관한 정보를 포함한다.1. An embodiment of the present invention is an entropy decoding method. The method comprises deriving scheduling information from a header of a bitstream received from an encoder, de-binarizing a partial bitstream constituting the received bitstream using the derived scheduling information Rearranging in order, deriving a bin corresponding to the bitstream based on the rearranged partial bitstream, and inversely binarizing the derived bin to obtain a syntax element. wherein the scheduling information includes information about positions of each of the partial bitstreams constituting the received bitstream and information about an inverse binarization order of the partial bitstreams.

2. 1에 있어서, 상기 빈의 LPB(Least Probable Bin) 확률에 대한 전체 확률 구간은, 각각 대표 확률을 갖는 복수의 확률 구간으로 분류되고, 상기 부분 비트스트림은 적어도 하나의 코드워드로 구성되고, 상기 부분 비트스트림을 구성하는 코드워드는 동일한 대표 확률에 대응될 수 있다.2. In 1, the entire probability interval for the LPB (Least Probable Bin) probability of the bin is classified into a plurality of probability intervals each having a representative probability, and the partial bitstream is composed of at least one codeword, Codewords constituting the partial bitstream may correspond to the same representative probability.

3. 2에 있어서, 상기 빈 도출 단계는, 상기 수신된 비트스트림의 헤더로부터 코드워드 길이 정보를 도출하는 단계 및 상기 도출된 코드워드 길이 정보에 기반하여 상기 비트스트림에 대응하는 빈을 도출하는 단계를 더 포함할 수 있고, 상기 코드워드 길이 정보는, 상기 복수의 확률 구간 각각의 대표 확률에 대한, 코드워드의 최소 길이 및 최대 길이에 관한 정보일 수 있다.3. The step of deriving the bin comprises deriving codeword length information from a header of the received bitstream and deriving a bin corresponding to the bitstream based on the derived codeword length information. It may further include, and the codeword length information may be information about a minimum length and a maximum length of a codeword for a representative probability of each of the plurality of probability intervals.

4. 3에 있어서, 상기 빈 도출 단계는, 상기 도출된 코드워드 길이 정보를 이용하여, 상기 복수의 확률 구간 각각의 대표 확률에 대한, 코드워드-빈 매핑 테이블을 결정하는 단계 및 상기 결정된 코드워드-빈 매핑 테이블을 이용하여 상기 비트스트림에 대응하는 빈을 도출하는 단계를 더 포함할 수 있다. 4. The step of deriving the bins includes determining a codeword-bin mapping table for representative probabilities of each of the plurality of probability intervals using the derived codeword length information, and the determined codeword - The method may further include deriving a bin corresponding to the bitstream by using a bin mapping table.

5. 본 발명의 다른 실시 형태는 엔트로피 복호화 장치이다. 상기 장치는 부호화기로부터 수신된 비트스트림의 헤더(header)로부터 스케쥴링 정보를 도출하고, 상기 도출된 스케쥴링 정보를 이용하여, 상기 수신된 비트스트림을 구성하는 부분 비트스트림을 역 이진화(de-binarization) 순서에 따라 재정렬하는 비트스트림 결정기, 상기 재정렬된 부분 비트스트림을 기반으로, 상기 비트스트림에 대응하는 빈(bin)을 도출하는 빈 복호화기(bin decoder) 및 상기 도출된 빈을 역 이진화하여 구문 요소(syntax element)를 획득하는 역 이진화기(de-binarizer)를 포함하고, 상기 스케쥴링 정보는, 상기 수신된 비트스트림을 구성하는 부분 비트스트림 각각의 위치에 관한 정보 및 상기 부분 비트스트림의 역이진화 순서에 관한 정보를 포함한다.5. Another embodiment of the present invention is an entropy decoding device. The apparatus derives scheduling information from a header of a bitstream received from an encoder, and uses the derived scheduling information to de-binarize a partial bitstream constituting the received bitstream in order of de-binarization. A bitstream determiner that rearranges according to the rearranged partial bitstream, a bin decoder that derives bins corresponding to the bitstream based on the rearranged partial bitstream, and a syntax element by inversely binarizing the derived bins ( syntax element), and the scheduling information includes information about the position of each of the partial bitstreams constituting the received bitstream and an inverse binarization order of the partial bitstream contains information about

6. 5에 있어서, 상기 빈의 LPB(Least Probable Bin) 확률에 대한 전체 확률 구간은, 각각 대표 확률을 갖는 복수의 확률 구간으로 분류되고, 상기 부분 비트스트림은 적어도 하나의 코드워드로 구성되고, 상기 부분 비트스트림을 구성하는 코드워드는 동일한 대표 확률에 대응될 수 있다.6. In 5, the entire probability interval for the LPB (Least Probable Bin) probability of the bin is classified into a plurality of probability intervals each having a representative probability, and the partial bitstream is composed of at least one codeword, Codewords constituting the partial bitstream may correspond to the same representative probability.

7. 6에 있어서, 상기 수신된 비트스트림의 헤더로부터 코드워드 길이 정보를 도출하는 코드워드 길이 계산기를 더 포함하고, 상기 빈 복호화기는 상기 도출된 코드워드 길이 정보에 기반하여 상기 비트스트림에 대응하는 빈을 도출할 수 있고, 상기 코드워드 길이 정보는, 상기 복수의 확률 구간 각각의 대표 확률에 대한, 코드워드의 최소 길이 및 최대 길이에 관한 정보일 수 있다.7. The method of 6, further comprising a codeword length calculator for deriving codeword length information from a header of the received bitstream, wherein the bin decoder corresponds to the bitstream based on the derived codeword length information A bin may be derived, and the codeword length information may be information about a minimum length and a maximum length of a codeword with respect to a representative probability of each of the plurality of probability intervals.

8. 7에 있어서, 상기 도출된 코드워드 길이 정보를 이용하여, 상기 복수의 확률 구간 각각의 대표 확률에 대한, 코드워드-빈 매핑 테이블을 결정하는 매핑 테이블 결정기를 더 포함할 수 있고, 상기 빈 복호화기는 상기 결정된 코드워드-빈 매핑 테이블을 이용하여 상기 비트스트림에 대응하는 빈을 도출할 수 있다.8. The method of 7 may further include a mapping table determiner for determining a codeword-bin mapping table for a representative probability of each of the plurality of probability intervals using the derived codeword length information, wherein the bin The decoder may derive a bin corresponding to the bitstream using the determined codeword-bin mapping table.

9. 본 발명의 또 다른 실시 형태는 영상 복호화 방법이다. 상기 방법은 부호화기로부터 수신된 비트스트림의 헤더(header)로부터 스케쥴링 정보를 도출하는 단계, 상기 도출된 스케쥴링 정보를 이용하여, 상기 수신된 비트스트림을 구성하는 부분 비트스트림을 역 이진화(de-binarization) 순서에 따라 재정렬하는 단계, 상기 재정렬된 부분 비트스트림을 기반으로, 상기 비트스트림에 대응하는 빈(bin)을 도출하는 단계, 상기 도출된 빈을 역 이진화하여 구문 요소(syntax element)를 획득하는 단계 및 상기 획득한 구문 요소를 이용하여 복원 영상을 생성하는 단계를 포함하고, 상기 스케쥴링 정보는, 상기 수신된 비트스트림을 구성하는 부분 비트스트림 각각의 위치에 관한 정보 및 상기 부분 비트스트림의 역이진화 순서에 관한 정보를 포함한다.9. Another embodiment of the present invention is a video decoding method. The method comprises deriving scheduling information from a header of a bitstream received from an encoder, de-binarizing a partial bitstream constituting the received bitstream using the derived scheduling information Rearranging in order, deriving a bin corresponding to the bitstream based on the rearranged partial bitstream, and inversely binarizing the derived bin to obtain a syntax element. and generating a reconstructed image using the obtained syntax element, wherein the scheduling information includes information about a position of each of the partial bitstreams constituting the received bitstream and an inverse binarization order of the partial bitstream contains information about

10. 9에 있어서, 상기 빈의 LPB(Least Probable Bin) 확률에 대한 전체 확률 구간은, 각각 대표 확률을 갖는 복수의 확률 구간으로 분류되고, 상기 부분 비트스트림은 적어도 하나의 코드워드로 구성되고, 상기 부분 비트스트림을 구성하는 코드워드는 동일한 대표 확률에 대응될 수 있다.10. In 9, the entire probability interval for the LPB (Least Probable Bin) probability of the bin is classified into a plurality of probability intervals each having a representative probability, and the partial bitstream is composed of at least one codeword, Codewords constituting the partial bitstream may correspond to the same representative probability.

11. 10에 있어서, 상기 빈 도출 단계는, 상기 수신된 비트스트림의 헤더로부터 코드워드 길이 정보를 도출하는 단계 및 상기 도출된 코드워드 길이 정보에 기반하여 상기 비트스트림에 대응하는 빈을 도출하는 단계를 더 포함할 수 있고, 상기 코드워드 길이 정보는, 상기 복수의 확률 구간 각각의 대표 확률에 대한, 코드워드의 최소 길이 및 최대 길이에 관한 정보일 수 있다.11. The step of deriving the bin comprises deriving codeword length information from a header of the received bitstream and deriving a bin corresponding to the bitstream based on the derived codeword length information. It may further include, and the codeword length information may be information about a minimum length and a maximum length of a codeword for a representative probability of each of the plurality of probability intervals.

12. 11에 있어서, 상기 빈 도출 단계는, 상기 도출된 코드워드 길이 정보를 이용하여, 상기 복수의 확률 구간 각각의 대표 확률에 대한, 코드워드-빈 매핑 테이블을 결정하는 단계 및 상기 결정된 코드워드-빈 매핑 테이블을 이용하여 상기 비트스트림에 대응하는 빈을 도출하는 단계를 더 포함할 수 있다.12. The method of 11, wherein the deriving the bin comprises determining a codeword-bin mapping table for a representative probability of each of the plurality of probability intervals using the derived codeword length information, and the determined codeword - The method may further include deriving a bin corresponding to the bitstream by using a bin mapping table.

본 발명에 따른 영상 부호화 방법에 의하면, 영상 부호화/복호화 효율이 향상될 수 있다.According to the video encoding method according to the present invention, video encoding/decoding efficiency can be improved.

본 발명에 따른 영상 복호화 방법에 의하면, 영상 부호화/복호화 효율이 향상될 수 있다.According to the video decoding method according to the present invention, video encoding/decoding efficiency can be improved.

본 발명에 따른 엔트로피 부호화 방법에 의하면, 영상 부호화/복호화 효율이 향상될 수 있다.According to the entropy encoding method according to the present invention, image encoding/decoding efficiency can be improved.

본 발명에 따른 엔트로피 복호화 방법에 의하면, 영상 부호화/복호화 효율이 향상될 수 있다.According to the entropy decoding method according to the present invention, image encoding/decoding efficiency can be improved.

도 1은 본 발명이 적용되는 영상 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 2는 본 발명이 적용되는 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 3은 본 발명에 따른 코드워드 길이 제한의 일 실시예를 개략적으로 나타내는 표이다.
도 4는 본 발명에 따른 비트스트림 파싱 과정에 대한 스케쥴링 방법의 일 실시예를 개략적으로 나타내는 개념도이다.
도 5는 본 발명에 따른 비트스트림 파싱 과정에 대한 스케쥴링 방법의 다른 실시예를 개략적으로 나타내는 개념도이다.
도 6은 본 발명에 따른 병렬 엔트로피 부호화 장치의 일 실시예를 개략적으로 나타내는 블록도이다.
도 7은 본 발명에 따른 병렬 엔트로피 복호화 장치의 일 실시예를 개략적으로 나타내는 블록도이다.
도 8은 본 발명에 따른 병렬 엔트로피 부호화 장치의 다른 실시예를 개략적으로 나타내는 블록도이다.
도 9는 본 발명에 따른 병렬 엔트로피 복호화 장치의 다른 실시예를 개략적으로 나타내는 블록도이다.
도 10은 본 발명에 따른 병렬 엔트로피 부호화 장치의 또 다른 실시예를 개략적으로 나타내는 블록도이다.
도 11은 본 발명에 따른 병렬 엔트로피 복호화 장치의 또 다른 실시예를 개략적으로 나타내는 블록도이다.
도 12는 본 발명에 따른 병렬 엔트로피 부호화 방법의 일 실시예를 개략적으로 나타내는 흐름도이다.
도 13은 본 발명에 따른 병렬 엔트로피 복호화 방법의 일 실시예를 개략적으로 나타내는 흐름도이다.
1 is a block diagram showing a configuration according to an embodiment of an image encoding apparatus to which the present invention is applied.
2 is a block diagram showing a configuration according to an embodiment of a video decoding apparatus to which the present invention is applied.
3 is a table schematically illustrating one embodiment of codeword length restrictions according to the present invention.
4 is a conceptual diagram schematically illustrating an embodiment of a scheduling method for a bitstream parsing process according to the present invention.
5 is a conceptual diagram schematically illustrating another embodiment of a scheduling method for a bitstream parsing process according to the present invention.
6 is a block diagram schematically illustrating an embodiment of a parallel entropy encoding apparatus according to the present invention.
7 is a block diagram schematically illustrating an embodiment of a parallel entropy decoding apparatus according to the present invention.
8 is a block diagram schematically illustrating another embodiment of a parallel entropy encoding apparatus according to the present invention.
9 is a block diagram schematically illustrating another embodiment of a parallel entropy decoding apparatus according to the present invention.
10 is a block diagram schematically illustrating another embodiment of a parallel entropy encoding apparatus according to the present invention.
11 is a schematic block diagram of another embodiment of a parallel entropy decoding apparatus according to the present invention.
12 is a flowchart schematically illustrating an embodiment of a parallel entropy encoding method according to the present invention.
13 is a flowchart schematically illustrating an embodiment of a parallel entropy decoding method according to the present invention.

이하, 도면을 참조하여 본 발명의 실시 형태에 대하여 구체적으로 설명한다. 본 명세서의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.EMBODIMENT OF THE INVENTION Hereinafter, embodiment of this invention is described concretely with reference to drawings. In describing the embodiments of the present specification, if it is determined that a detailed description of a related known configuration or function may obscure the gist of the present specification, the detailed description thereof will be omitted.

어떤 구성 요소가 다른 구성 요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 아울러, 본 발명에서 특정 구성을 “포함”한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함될 수 있음을 의미한다. It is understood that when a component is referred to as “connected” or “connected” to another component, it may be directly connected or connected to the other component, but other components may exist in the middle. It should be. In addition, the description of "including" a specific configuration in the present invention does not exclude configurations other than the corresponding configuration, and means that additional configurations may be included in the practice of the present invention or the scope of the technical spirit of the present invention.

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

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

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

도 1은 본 발명이 적용되는 영상 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.1 is a block diagram showing a configuration according to an embodiment of an image encoding apparatus to which the present invention is applied.

도 1을 참조하면, 상기 영상 부호화 장치(100)는 움직임 예측부(111), 움직임 보상부(112), 인트라 예측부(120), 스위치(115), 감산기(125), 변환부(130), 양자화부(140), 엔트로피 부호화부(150), 역양자화부(160), 역변환부(170), 가산기(175), 필터부(180) 및 참조 픽쳐 버퍼(190)를 포함한다. Referring to FIG. 1 , the video encoding apparatus 100 includes a motion estimation unit 111, a motion compensation unit 112, an intra prediction unit 120, a switch 115, a subtractor 125, and a transform unit 130. , a quantization unit 140, an entropy encoding unit 150, an inverse quantization unit 160, an inverse transform unit 170, an adder 175, a filter unit 180, and a reference picture buffer 190.

영상 부호화 장치(100)는 입력 영상에 대해 인트라(intra) 모드 또는 인터(inter) 모드로 부호화를 수행하고 비트스트림을 출력할 수 있다. 인트라 모드인 경우 스위치(115)가 인트라로 전환되고, 인터 모드인 경우 스위치(115)가 인터로 전환될 수 있다. 영상 부호화 장치(100)는 입력 영상의 입력 블록에 대한 예측 블록을 생성한 후, 입력 블록과 예측 블록의 차분(residual)을 부호화할 수 있다.The image encoding apparatus 100 may encode an input image in an intra mode or an inter mode and output a bitstream. In the case of the intra mode, the switch 115 may be switched to the intra mode, and in the case of the inter mode, the switch 115 may be switched to the inter mode. After generating a prediction block for an input block of an input image, the image encoding apparatus 100 may encode a residual between the input block and the prediction block.

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

인터 모드인 경우, 움직임 예측부(111)는, 움직임 예측 과정에서 참조 픽쳐 버퍼(190)에 저장되어 있는 참조 영상에서 입력 블록과 가장 매치가 잘 되는 영역을 찾아 움직임 벡터를 구할 수 있다. 움직임 보상부(112)는 움직임 벡터를 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다. In the case of the inter mode, the motion estimation unit 111 may obtain a motion vector by finding a region that best matches the input block in the reference picture stored in the reference picture buffer 190 during the motion prediction process. The motion compensator 112 may generate a prediction block by performing motion compensation using a motion vector.

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

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

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

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

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

도 2는 본 발명이 적용되는 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.2 is a block diagram showing a configuration according to an embodiment of a video decoding apparatus to which the present invention is applied.

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

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

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

엔트로피 복호화 방법이 적용되는 경우, 높은 발생 확률을 갖는 심볼에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 각 심볼들에 대한 비트열의 크기가 감소될 수 있다. 따라서 엔트로피 복호화 방법을 통해서 영상 복호화의 압축 성능이 높아질 수 있다. When the entropy decoding method is applied, a small number of bits are allocated to a symbol with a high probability of occurrence and a large number of bits are allocated to a symbol with a low probability of occurrence to express the symbol, thereby increasing the size of the bit stream for each symbol. can be reduced Therefore, compression performance of image decoding may be improved through the entropy decoding method.

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

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

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

도 1 및 도 2에서 상술한 바와 같이, 부호화기 및 복호화기는 각각 엔트로피 부호화 및 엔트로피 복호화를 수행할 수 있다. 엔트로피 부호화/복호화가 적용되는 경우, 높은 발생 확률을 갖는 심볼에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 부호화 대상 심볼들에 대한 비트열의 크기가 감소될 수 있다. 엔트로피 부호화/복호화를 위해 사용되는 방법에는 지수 골룸, CAVLC, CABAC 등이 있을 수 있다.As described above with reference to FIGS. 1 and 2 , the encoder and the decoder may respectively perform entropy encoding and entropy decoding. When entropy encoding/decoding is applied, a small number of bits are allocated to a symbol with a high probability of occurrence and a large number of bits are allocated to a symbol with a low probability of occurrence to represent the symbol. size may be reduced. Methods used for entropy encoding/decoding may include exponential Gollum, CAVLC, CABAC, and the like.

예를 들어, 부호화기 및 복호화기에는 가변 길이 부호화(VLC) 테이블과 같은 엔트로피 부호화/복호화를 수행하기 위한 테이블이 저장될 수 있고, 부호화기 및 복호화기는 저장된 가변 길이 부호화 테이블을 사용하여 엔트로피 부호화/복호화를 수행할 수 있다. For example, a table for performing entropy encoding/decoding, such as a variable length coding (VLC) table, may be stored in the encoder and decoder, and the encoder and decoder perform entropy encoding/decoding using the stored variable length encoding table. can be done

부호화기 및 복호화기는 대상 심볼의 이진화(binarization) 방법 및 대상 심볼/빈(bin)의 확률 모델(probability model)을 도출한 후, 도출된 이진화 방법 또는 확률 모델을 사용하여 엔트로피 부호화/복호화를 수행할 수도 있다. The encoder and decoder may derive a binarization method of the target symbol and a probability model of the target symbol/bin, and then perform entropy encoding/decoding using the derived binarization method or probability model. there is.

여기서, 이진화(binarization)란 심볼의 값을 2진수의 열(bin sequence/string)로 표현하는 것을 의미한다. 빈(bin)은 심볼이 이진화를 통해 2진수의 열로 표현될 때, 각각의 2진수의 값(0 또는 1)을 의미한다. 확률 모델이란, 문맥 정보(context information)/문맥 모델(context model)을 통해서 도출될 수 있는 부호화/복호화 대상 심볼/빈의 예측된 확률을 의미한다. 문맥 정보/문맥 모델은 부호화/복호화 대상 심볼/빈의 확률을 결정하기 위한 정보를 말한다.Here, binarization means representing the value of a symbol as a binary sequence/string. A bin means a value (0 or 1) of each binary number when a symbol is expressed as a sequence of binary numbers through binarization. A probability model means a predicted probability of a symbol/bin to be encoded/decoded that can be derived through context information/context model. The context information/context model refers to information for determining a probability of a symbol/bin to be coded/decoded.

보다 상세하게, CABAC 엔트로피 부호화 방법은, 이진화되지 않은 심볼을 이진화(binarization)하여 빈으로 변환하고, 주변 및 부호화 대상 블록의 부호화 정보 혹은 이전 단계에서 부호화된 심볼/빈의 정보를 이용하여 문맥 모델을 결정하고, 결정된 문맥 모델에 따라 빈(bin)의 발생 확률을 예측하여 빈의 산술 부호화(arithmetic encoding)를 수행하여 비트스트림을 생성할 수 있다.More specifically, the CABAC entropy encoding method converts non-binarized symbols into bins by binarization, and constructs a context model using encoding information of surrounding and encoding target blocks or information of symbols/bins encoded in a previous step. A bit stream may be generated by determining a bin occurrence probability and predicting a bin occurrence probability according to the determined context model and performing arithmetic encoding of the bin.

즉, 부호화기/복호화기는 주변 블록의 부호화/복호화 정보와 이전 단계에서 부호화/복호화된 빈(bin)의 발생 확률을 이용하여 효과적으로 엔트로피 부호화/복호화를 수행할 수 있다. 또한 부호화 단계에서 부호화기는 주변 블록의 부호화 정보를 통해 문맥 모델을 선택하고, 선택된 문맥 모델에 따라 발생된 빈의 발생 확률 정보를 업데이트할 수 있다.That is, the encoder/decoder can effectively perform entropy encoding/decoding by using the encoding/decoding information of neighboring blocks and the probability of occurrence of bins encoded/decoded in the previous step. Also, in the encoding step, the encoder may select a context model through encoding information of neighboring blocks, and update information about the occurrence probability of bins generated according to the selected context model.

HD급 이상의 크기를 가지는 UHD급 영상에 대해 단일 부호화기 및/또는 단일 복호화기가 사용되는 경우, 단일 프로세서에 요구되는 작업량이 매우 많고 영상 처리 속도가 매우 늦을 수 있다. 따라서, 부호화 및/또는 복호화 프로세스의 병렬화를 통해 부호화 효율을 향상시키는 방법이 제공될 수 있다. 이를 위해 움직임 보상, 영상 보간(interpolation), DCT(Discrete Cosine Transform), 양자화 등의 프로세스에 대한 병렬화 방법이 제공될 수 있으며, 상술한 엔트로피 부호화/복호화 프로세스에 대해서도 병렬화 방법이 적용될 수 있다.When a single encoder and/or a single decoder is used for a UHD-level image having a size equal to or greater than HD-level, a workload required for a single processor is very large and image processing speed may be very slow. Accordingly, a method of improving encoding efficiency through parallelization of encoding and/or decoding processes may be provided. To this end, a parallelization method for processes such as motion compensation, image interpolation, discrete cosine transform (DCT), and quantization may be provided, and the parallelization method may also be applied to the above-described entropy encoding/decoding process.

병렬 엔트로피 부호화/복호화는 복수 개의 엔트로피 부호화기 및/또는 복수 개의 엔트로피 복호화기를 이용하여 수행될 수 있다. 병렬 엔트로피 부호화/복호화를 위해 사용되는 기술에는, 가변 길이의 빈 시퀀스(bin sequence)를 가변 길이의 코드워드(codeword)로 매핑(mapping) 및/또는 변환(conversion)하는, PIPE(Probability Interval Partitioning Entropy) 및 V2V(Variable length to Variable length) 등이 있을 수 있다. PIPE 및 V2V 방식은 단일 엔트로피 부호화기/복호화기 및 병렬 엔트로피 부호화기/복호화기에 모두 적용될 수 있다.Parallel entropy encoding/decoding may be performed using a plurality of entropy encoders and/or a plurality of entropy decoders. A technique used for parallel entropy encoding/decoding includes Probability Interval Partitioning Entropy (PIPE), which maps and/or converts a variable-length bin sequence into a variable-length codeword. ) and variable length to variable length (V2V). The PIPE and V2V schemes can be applied to both single entropy coder/decoder and parallel entropy coder/decoder.

병렬 엔트로피 부호화/복호화 과정에서 빈(bin)의 확률은 양자화 간격에 따라 나누어질 수 있다. 나누어진 각각의 확률 구간들은 부호화기 측에서 각각의 확률 구간에 대응되는 빈(bin) 부호화기에 할당될 수 있으며, 복호화기 측에서 각각의 확률 구간에 대응되는 빈(bin) 복호화기에 할당될 수 있다. 또한 나누어진 각각의 확률 구간에는 상기 각각의 확률 구간에 대응되는 대표 확률 값이 존재할 수 있다. PIPE 또는 V2V 기술이 병렬 엔트로피 부호화/복호화에 사용되는 경우, 복수 개의 엔트로피 부호화기/복호화기는, 각각 이에 할당된 LPB(Least Probable Bin) 확률 구간 및 상기 확률 구간에 대응되는 대표 LPB 확률 값을 이용하여 부호화/복호화를 수행할 수 있다. 여기서, LPB는 0과 1의 빈의 값 중 더 적게 나타나는 빈의 값을 의미할 수 있다. 이하, 후술되는 실시예들에서, 확률 구간은 LPB 확률 구간을 의미할 수 있고, 대표 확률은 대표 LPB 확률을 의미할 수 있다.In the process of parallel entropy encoding/decoding, the probability of a bin may be divided according to a quantization interval. Each of the divided probability intervals may be allocated to a bin encoder corresponding to each probability interval at the encoder side, and may be allocated to a bin decoder corresponding to each probability interval at the decoder side. In addition, a representative probability value corresponding to each probability interval may exist in each divided probability interval. When PIPE or V2V technology is used for parallel entropy encoding/decoding, a plurality of entropy encoders/decoders are assigned to each Least Probable Bin (LPB) probability interval and a representative LPB probability value corresponding to the probability interval Encoding using / Decryption can be performed. Here, LPB may mean a bin value that appears less among bin values of 0 and 1. Hereinafter, in embodiments to be described later, a probability interval may mean an LPB probability interval, and a representative probability may mean a representative LPB probability.

부호화기에서, 병렬화된 각각의 엔트로피 부호화기는 고정된 대표 확률로 빈을 코딩하고, 부호화기는 출력인 코드워드의 집합을 비트스트림의 형태로 복호화기로 전송할 수 있다. 예를 들어, 부호화기는 부호화 대상 심볼을 이진화하여 빈으로 변환하고, 문맥 모델러 및/또는 확률 예측기를 통해 부호화 대상 빈 각각에 대한 LPB 확률 값을 예측 및/또는 도출할 수 있다. 부호화기는 문맥 모델러 및/또는 확률 예측기를 통해 예측된 LPB 확률 값을 이용하여, 빈 각각에 대한 확률 구간 및 확률 구간 각각에 대한 대표 LPB 확률을 도출할 수 있다. 각각의 빈은, 이에 대응되는 확률 구간이 할당된 빈 부호화기에서 엔트로피 부호화될 수 있다. 이 때, 각각의 빈 부호화기에 입력된 빈 시퀀스(bin sequence)는 코드워드 테이블에 의해 코드워드로 변환될 수 있다. 즉, 각각의 빈 부호화기에 입력된 빈 시퀀스는 코드워드 테이블 매핑을 통해, 코드워드 형태로 출력될 수 있다. 출력된 코드워드는 비트스트림에 포함되어, NAL(Network Abstraction Layer) 단위로 복호화기로 전송될 수 있다. In the encoder, each parallelized entropy coder codes bins with a fixed representative probability, and the encoder may transmit a set of output codewords to the decoder in the form of a bitstream. For example, the encoder may binarize symbols to be encoded and convert them into bins, and predict and/or derive LPB probability values for each bin to be encoded through a context modeler and/or a probability predictor. The encoder may derive a probability interval for each bin and a representative LPB probability for each probability interval using the LPB probability value predicted through the context modeler and/or the probability predictor. Each bin may be entropy-coded in a bin encoder to which a probability interval corresponding to the bin is assigned. In this case, a bin sequence input to each bin encoder may be converted into a codeword by a codeword table. That is, bin sequences input to each bin encoder can be output in the form of codewords through codeword table mapping. The output codeword may be included in a bitstream and transmitted to a decoder in Network Abstraction Layer (NAL) units.

복호화기로 전송된 비트스트림은 복호화기에 의해 파싱(parsing)될 수 있다. 파싱 과정에서, 복호화기는 가변 길이의 코드워드를 가변 길이의 빈 시퀀스로 매핑 및/또는 변환시킬 수 있다. 이 때, 각각의 빈에 대한 비교 과정에서, 오버헤드가 발생할 수 있다. The bitstream transmitted to the decoder may be parsed by the decoder. In the parsing process, the decoder may map and/or convert a codeword of variable length into an empty sequence of variable length. In this case, overhead may occur in a comparison process for each bin.

또한, 부호화기에 포함된 엔트로피 부호화기의 개수는 복호화기에 포함된 엔트로피 복호화기의 개수와 서로 다를 수 있고, 예를 들어, 부호화된 비트스트림이 복호화기로 전송되어 복호화되는 경우, 엔트로피 복호화기의 개수가 엔트로피 부호화기의 개수보다 작을 수 있다. 이 때, 일례로 각각의 엔트로피 복호화기는 하나의 대표 확률에 대응되는 비트스트림을 파싱(parsing)한 후, 다른 대표 확률에 대응되는 비트스트림을 파싱할 수 있다. 파싱 후에 각각의 빈은 역이진화(de-binarization) 과정을 통해 의미 있는 구문 요소(syntax element)의 값으로 복호화되므로, 상술한 파싱 과정은, 역이진화 단계의 지연을 야기할 수 있으며, 이는 전체 엔트로피 복호화 속도에 큰 영향을 미칠 수 있다. In addition, the number of entropy decoders included in the encoder may be different from the number of entropy decoders included in the decoder. For example, when an encoded bitstream is transmitted to the decoder and decoded, the number of entropy decoders is It may be smaller than the number of encoders. In this case, for example, each entropy decoder may parse a bitstream corresponding to one representative probability and then parse a bitstream corresponding to another representative probability. After parsing, each bin is decoded into a value of a meaningful syntax element through a de-binarization process, so the above-described parsing process may cause a delay in the de-binarization step, which reduces the overall entropy It can have a big impact on the decoding speed.

역이진화 단계에서의 지연을 감소시키기 위해, 부호화기에 포함된 각각의 엔트로피 부호화기는, 비트스트림 내의 복호화 가능 위치에 관한 정보를 상기 비트스트림의 헤더에 추가할 수 있으며, 복호화 가능 위치에 관한 정보가 헤더에 포함된 비트스트림이 복호화기로 전송될 수 있다. 본 명세서에서 상기 복호화 가능 위치는, 최소 단위 비트스트림에서 엔트로피 복호화가 시작되는 지점 및/또는 엔트로피 복호화가 끝나는 지점을 의미할 수 있다. 또한, 상기 최소 단위 비트스트림은, 부호화기에서 복호화기로 전송되는 비트스트림 내에서, 엔트로피 복호화가 수행되는 최소 단위를 나타낼 수 있으며, 예를 들어 상기 최소 단위 비트스트림은 하나의 코드워드(codeword)에 대응될 수 있다. 이 때, 각각의 엔트로피 복호화기는, 비트스트림 전체의 시작 지점이 아닌, 비트스트림의 중간 지점(예를 들어, 최소 단위 비트스트림의 시작 지점)에서부터 엔트로피 복호화를 수행할 수 있다. 복호화기는 비트스트림의 헤더에 포함된 복호화 가능 위치에 관한 정보를 이용하여, 각 엔트로피 복호화기에서의 비트스트림 파싱 과정에 대한 스케쥴링(scheduling)을 수행할 수 있다. 그러나, 상술한 바와 같이 복호화 가능 위치에 관한 정보가 이용되는 경우에도, 파싱 후 역이진화가 수행되기 전의 빈(bin)은 의미 있는 구문 요소의 값으로 인식될 수 없으므로, 역이진화 단계에서 지연이 발생할 수 있으며 엔트로피 복호화기의 출력이 지연될 수 있다. In order to reduce the delay in the debinarization step, each entropy encoder included in the encoder may add information about a decodable position in the bitstream to a header of the bitstream, and the information about the decodable position may be added to the header. The bitstream included in may be transmitted to the decoder. In the present specification, the decodable position may mean a point where entropy decoding starts and/or a point where entropy decoding ends in a minimum unit bitstream. In addition, the minimum unit bitstream may represent a minimum unit in which entropy decoding is performed within a bitstream transmitted from an encoder to a decoder, and for example, the minimum unit bitstream corresponds to one codeword. It can be. In this case, each entropy decoder may perform entropy decoding from an intermediate point of the bitstream (eg, a starting point of the minimum unit bitstream) instead of a starting point of the entire bitstream. The decoder may perform scheduling for a bitstream parsing process in each entropy decoder using information about a decodable position included in a header of a bitstream. However, even when the information on the decodable position is used as described above, since a bin before debinarization is performed after parsing cannot be recognized as a value of a meaningful syntax element, a delay occurs in the debinarization step. and the output of the entropy decoder may be delayed.

상술한 바와 같이 파싱 과정 및 역이진화 과정에서 지연이 발생하는 경우, 병렬 엔트로피 부호화/복호화 속도가 감소될 수 있다. 따라서, 파싱 과정 및 역이진화 과정에서 발생하는 지연을 최소화할 수 있는 병렬 엔트로피 부호화/복호화 방법이 요구된다.As described above, when a delay occurs in the parsing process and the debinarization process, the parallel entropy encoding/decoding speed may decrease. Therefore, a parallel entropy encoding/decoding method capable of minimizing the delay occurring in the parsing process and debinarization process is required.

도 3은 본 발명에 따른 코드워드 길이 제한의 일 실시예를 개략적으로 나타내는 표이다. 도 3은 대표 LPB 확률이 될 수 있는 LPB의 고정 확률 값 각각에 대한, 코드워드의 최소 길이 및 최대 길이를 도시한다.3 is a table schematically illustrating one embodiment of codeword length restrictions according to the present invention. 3 shows the minimum and maximum lengths of codewords for each fixed probability value of an LPB that can be a representative LPB probability.

엔트로피 부호화기의 출력인 코드워드가 생성될 때, 코드워드의 길이는 가변적인 값을 가질 수 있다. 그러나, 상술한 바와 같이 복호화기에서 가변 길이의 코드워드가 가변 길이의 빈 시퀀스로 변환 및/또는 매핑되는 경우에는 많은 연산량이 요구되므로, 코드워드 파싱 과정에서 오버헤드가 발생할 수 있다. 따라서, 소정의 고정된 길이의 코드워드가 사용될 수도 있으며, 이 경우, 복호화기의 파싱 속도가 향상될 수 있다. 그러나, 소정의 고정된 길이의 코드워드가 사용되는 경우에는, 부호화 효율이 감소된다는 문제점이 발생할 수 있다.When a codeword that is an output of the entropy encoder is generated, the length of the codeword may have a variable value. However, as described above, when a codeword of variable length is converted and/or mapped into an empty sequence of variable length in a decoder, a large amount of computation is required, and thus overhead may occur in the codeword parsing process. Accordingly, a codeword of a predetermined fixed length may be used, and in this case, the parsing speed of the decoder may be improved. However, when a codeword of a predetermined fixed length is used, a problem that encoding efficiency is reduced may occur.

따라서, 파싱 과정에서 발생하는 오버헤드를 감소시키기 위해, 코드워드의 길이가 최소 길이 이상, 최대 길이 이하로 제한될 수 있다. 코드워드의 최소 길이 및 최대 길이는, 병렬 엔트로피 부호화기가 갖는 대표 LPB 확률 각각에 대해 정의될 수 있다. 즉, 코드워드의 최소 길이 및 최대 길이는, 부호화기 내의 각각의 엔트로피 부호화기가 갖는 대표 LPB 확률 값을 고려하여 정의될 수 있다. Accordingly, in order to reduce overhead occurring in the parsing process, the length of the codeword may be limited to a minimum length or a maximum length. The minimum length and the maximum length of the codeword may be defined for each representative LPB probability of the parallel entropy encoder. That is, the minimum length and the maximum length of the codeword may be defined in consideration of representative LPB probability values of each entropy encoder in the encoder.

예를 들어, 부호화기는 코드워드 길이 계산기를 포함할 수 있다. 상기 코드워드 길이 계산기는, 대표 확률이 될 수 있는 고정 확률 값 각각에 대해, 부호화 효율을 고려하여 최적의 코드워드 길이(최소 길이 및 최대 길이)를 도출할 수 있다. 이 때, 부호화기에 포함된 각각의 엔트로피 부호화기는, 이에 대응되는 대표 확률 값에 따라, 최소 길이 이상, 최대 길이 이하의 길이를 갖는 코드워드를 생성할 수 있다. 도 3은 도출된 코드워드의 최소 길이 및 최대 길이의 실시예를 도시한다. For example, an encoder may include a codeword length calculator. The codeword length calculator may derive an optimal codeword length (minimum length and maximum length) for each fixed probability value that may be a representative probability in consideration of encoding efficiency. In this case, each entropy encoder included in the encoder may generate a codeword having a length greater than or equal to the minimum length and less than or equal to the maximum length according to a representative probability value corresponding thereto. Figure 3 shows an embodiment of the minimum length and maximum length of the derived codeword.

도 3을 참조하면, 각각의 고정 확률 값에 대해, 코드워드의 최대 길이 및 최소 길이가 도출될 수 있다. 예를 들어, 고정 확률 값이 0.5인 경우, 코드워드의 최대 길이는 8, 코드워드의 최소 길이는 6일 수 있다. 또한, 고정 확률 값이 0.005인 경우, 코드워드의 최대 길이는 13, 코드워드의 최소 길이는 1일 수 있다. Referring to FIG. 3, for each fixed probability value, a maximum length and a minimum length of a codeword may be derived. For example, when the fixed probability value is 0.5, the maximum length of the codeword may be 8 and the minimum length of the codeword may be 6. Also, when the fixed probability value is 0.005, the maximum length of the codeword may be 13 and the minimum length of the codeword may be 1.

또한, 도 3의 실시예에서는, 고정 확률 값이 높을수록, 코드워드의 최대 길이 값이 작고 최소 길이 값이 클 수 있다. 따라서, LPB의 고정 확률 값이 클수록 코드워드 길이 값의 분산이 적고, LPB의 고정 확률 값이 작을수록 코드워드 길이 값의 분산이 클 수 있다.Also, in the embodiment of FIG. 3 , the higher the fixed probability value, the smaller the maximum length value of the codeword and the larger the minimum length value. Therefore, the larger the fixed probability value of the LPB, the smaller the variance of the codeword length value, and the smaller the fixed probability value of the LPB, the larger the variance of the codeword length value.

고정 확률 값 각각에 대해 도출되는 코드워드의 최소 길이 및 최대 길이는, 상술한 실시예에 한정되지 않으며, 경우에 따라 다양한 형태로 도출될 수 있다. 이하, 부호화기에서 도출되는 코드워드의 최소 길이 및 최대 길이에 관한 정보는, 코드워드 길이 정보라 한다.The minimum length and maximum length of the codeword derived for each fixed probability value are not limited to the above-described embodiment, and may be derived in various forms depending on circumstances. Hereinafter, information on the minimum length and maximum length of a codeword derived from an encoder is referred to as codeword length information.

부호화기에서 도출된 코드워드 길이 정보는, 비트스트림의 헤더에 포함되어 복호화기로 전송될 수 있다. 이 때, 복호화기는 전송된 코드워드 길이 정보를 이용하여 코드워드를 빈 시퀀스로 매핑시키거나 변환할 수 있으며, 병렬 엔트로피 복호화 속도가 향상될 수 있다.Codeword length information derived from the encoder may be included in a header of the bitstream and transmitted to the decoder. In this case, the decoder may map or convert the codeword into an empty sequence using the transmitted codeword length information, and the parallel entropy decoding speed may be improved.

도 4는 본 발명에 따른 비트스트림 파싱 과정에 대한 스케쥴링 방법의 일 실시예를 개략적으로 나타내는 개념도이다. 4 is a conceptual diagram schematically illustrating an embodiment of a scheduling method for a bitstream parsing process according to the present invention.

도 4는 부호화기에 포함된 빈(bin) 부호화기의 개수와 복호화기에 포함된 빈(bin) 복호화기의 개수가 동일한 경우의 스케쥴링 방법을 도시한다. 도 4의 실시예에서, 빈 부호화기의 개수와 빈 복호화기의 개수는 각각 4개라 가정한다.4 illustrates a scheduling method when the number of bin encoders included in the encoder and the number of bin decoders included in the decoder are the same. In the embodiment of FIG. 4 , it is assumed that the number of empty encoders and the number of empty decoders are 4, respectively.

도 4의 410은 부호화기에서 출력되어 복호화기로 전송되는 비트스트림의 일 실시예를 나타낸다. 상기 비트스트림을 구성하는 각각의 블록(점선으로 구분된 블록)은 최소 단위 비트스트림을 나타낼 수 있으며, 예를 들어, 각각의 최소 단위 비트스트림은 하나의 코드워드에 대응될 수 있다. 각 최소 단위 비트스트림에 표시된 번호는, 파싱 후에 역이진화가 수행되는 순서를 나타낼 수 있다. 또한, 도 4의 411, 413, 415, 417 각각은, 하나의 빈 부호화기의 대표 확률에 대응되는, 모든 최소 단위 비트스트림의 집합을 나타낼 수 있다. 이하, 하나의 대표 확률 및/또는 하나의 확률 구간에 대응되는 모든 최소 단위 비트스트림의 집합은 대표 확률 단위 비트스트림이라 한다.410 of FIG. 4 represents an embodiment of a bitstream output from an encoder and transmitted to a decoder. Each block constituting the bitstream (blocks separated by a dotted line) may represent a minimum unit bitstream, and for example, each minimum unit bitstream may correspond to one codeword. A number indicated in each minimum unit bitstream may indicate an order in which inverse binarization is performed after parsing. In addition, each of 411, 413, 415, and 417 of FIG. 4 may indicate a set of all minimum unit bitstreams corresponding to a representative probability of one bin coder. Hereinafter, a set of all minimum unit bitstreams corresponding to one representative probability and/or one probability interval is referred to as a representative probability unit bitstream.

도 4의 420은 도 410의 비트스트림을 4개의 빈 복호화기의 코어(core)에 할당하는 방법의 일 실시예를 도시한다. 도 4의 420을 참조하면, 하나의 대표 확률 단위 비트스트림은 하나의 빈 복호화기의 코어에 할당될 수 있다. 여기서, 코어는 연산을 수행하는 프로세서(processor)를 의미할 수 있다. 이 때, 각각의 빈 복호화기는, 이에 할당된 대표 확률 단위 비트스트림에 대하여 엔트로피 복호화를 수행할 수 있다. 420 of FIG. 4 illustrates an embodiment of a method for allocating the bitstream of FIG. 410 to cores of a four bin decoder. Referring to 420 of FIG. 4 , one representative probability unit bitstream may be allocated to a core of one bin decoder. Here, the core may mean a processor that performs calculations. In this case, each bin decoder may perform entropy decoding on the representative probability unit bitstream allocated thereto.

파싱 후에 각각의 빈은 역이진화 과정을 통해 의미 있는 구문 요소의 값으로 복호화될 수 있다. 이 때, 비트스트림이 빈 시퀀스로 변환되는 파싱 과정은, 역이진화 과정과는 별개로, 독립적으로 수행될 수 있다. 예를 들어, 비트스트림이 빈 시퀀스로 변환되는 순서와 역이진화가 수행되는 순서는 각각 별개로 정해질 수 있다. 따라서, 도 4의 420에서는 역이진화 단계에서 필요한 빈에 대한 파싱이 지연되어, 역이진화 과정의 지연이 발생할 수 있다. 즉, 도 4의 420의 실시예에 의한 파싱 과정은, 역이진화 단계의 지연을 야기할 수 있으며, 이는 전체 엔트로피 복호화기의 지연을 발생시킬 수 있다. 따라서, 역이진화 과정에서 발생되는 지연을 감소시킬 수 있는 엔트로피 복호화 방법이 제공될 수 있다.After parsing, each bin can be decoded into a meaningful syntax element value through a debinarization process. In this case, a parsing process in which the bitstream is converted into an empty sequence may be performed independently of the debinarization process. For example, an order in which a bitstream is converted into an empty sequence and an order in which inverse binarization is performed may be separately determined. Therefore, in 420 of FIG. 4 , parsing of bins required in the debinarization step is delayed, and thus the debinarization process may be delayed. That is, the parsing process according to the embodiment of 420 of FIG. 4 may cause a delay in the debinarization step, which may cause a delay in the entire entropy decoder. Accordingly, an entropy decoding method capable of reducing a delay generated in an inverse binarization process may be provided.

도 4의 430은 부호화기에서 출력되어 복호화기로 전송되는 비트스트림의 다른 실시예를 나타낸다. 상기 비트스트림을 구성하는 각각의 블록(점선으로 구분된 블록)은 최소 단위 비트스트림을 나타낼 수 있으며, 예를 들어, 각각의 최소 단위 비트스트림은 하나의 코드워드에 대응될 수 있다. 각 최소 단위 비트스트림에 표시된 번호는, 파싱 후에 역이진화가 수행되는 순서를 나타낼 수 있다. 또한, 도 4의 433, 435, 437, 439 각각은, 대표 확률 단위 비트스트림을 나타낼 수 있다. 430 of FIG. 4 shows another embodiment of a bitstream output from an encoder and transmitted to a decoder. Each block constituting the bitstream (blocks separated by a dotted line) may represent a minimum unit bitstream, and for example, each minimum unit bitstream may correspond to one codeword. A number indicated in each minimum unit bitstream may indicate an order in which inverse binarization is performed after parsing. In addition, each of 433, 435, 437, and 439 of FIG. 4 may represent a representative probability unit bitstream.

또한, 도 4의 430의 비트스트림 헤더(431)는 비트스트림 파싱 과정의 스케쥴링을 위한, 스케쥴링 정보를 포함할 수 있다. 여기서, 스케쥴링은 심볼의 구문 요소에 대한 역이진화 순서를 고려하여, 비트스트림을 재정렬하는 프로세스를 의미할 수 있다. 스케쥴링이 수행되면, 재정렬된 비트스트림이 빈 복호화기에 할당될 수 있다. 스케쥴링 정보의 구체적인 실시예는 후술된다.In addition, the bitstream header 431 of 430 of FIG. 4 may include scheduling information for scheduling a bitstream parsing process. Here, scheduling may refer to a process of rearranging a bitstream by considering an inverse binarization order of syntax elements of symbols. When scheduling is performed, the rearranged bitstream may be allocated to an empty decoder. A specific embodiment of the scheduling information will be described later.

도 4의 440은 도 430의 비트스트림을 4개의 빈 복호화기의 코어에 할당하는 방법의 실시예를 도시한다. 440 of FIG. 4 illustrates an embodiment of a method for allocating the bitstream of FIG. 430 to the cores of a four bin decoder.

도 4의 440을 참조하면, 하나의 대표 확률 단위 비트스트림은 복수 개의 부분 비트스트림으로 분류 및/또는 분할될 수 있다. 여기서 부분 비트스트림은, 비트스트림 재정렬을 위해, 부호화기에서 결정되는 엔트로피 복호화 단위를 나타낼 수 있으며, 하나의 부분 비트스트림은 한 개 또는 복수 개의 최소 단위 비트스트림을 포함할 수 있다. 대표 확률 단위 비트스트림이 부분 비트스트림으로 분할된 경우, 각각의 엔트로피 복호화기는, 대표 확률 단위 비트스트림 전체의 시작 지점이 아닌, 비트스트림의 중간 지점(예를 들어, 부분 비트스트림의 시작 지점)에서 파싱을 시작할 수 있다.Referring to 440 of FIG. 4 , one representative probability unit bitstream may be classified and/or divided into a plurality of partial bitstreams. Here, the partial bitstream may represent an entropy decoding unit determined by an encoder for rearrangement of the bitstream, and one partial bitstream may include one or a plurality of minimum unit bitstreams. When the representative probability unit bitstream is divided into partial bitstreams, each entropy decoder is performed at the middle point of the bitstream (eg, the starting point of the partial bitstream) instead of the starting point of the entire representative probability unit bitstream. You can start parsing.

복호화기는 심볼의 구문 요소에 대한 역이진화 순서를 고려하여, 역이진화 과정에서 우선적으로 필요한 빈이 먼저 파싱될 수 있도록, 부분 비트스트림을 재정렬하여 각각의 빈 복호화기에 할당되는 비트스트림을 결정할 수 있다. 이 때, 복호화기는 빈 복호화기의 개수를 고려하여, 복수의 빈 복호화기가 서로 비슷한 작업량을 가질 수 있도록 비트스트림을 할당할 수 있다. The decoder may determine a bitstream allocated to each bin decoder by rearranging the partial bitstream so that the bins that are preferentially needed in the debinarization process are parsed first, considering the debinarization order of the syntax elements of the symbol. At this time, the decoder may allocate the bitstream in consideration of the number of empty decoders so that the plurality of empty decoders can have a similar amount of work.

대표 확률 단위 비트스트림이 부분 비트스트림으로 분할 및/또는 분류되는 지점은 부호화기에서 결정될 수 있으며, 각각의 대표 확률 단위 비트스트림 및/또는 각각의 부분 비트스트림에 대한 파싱의 우선순위도 부호화기에서 결정될 수 있다. 상기 결정 과정에서, 부호화기는 심볼의 구문 요소에 대한 역이진화 순서를 고려하여, 부분 비트스트림 및 우선순위를 결정할 수 있다.A point at which the representative probability unit bitstream is divided and/or classified into partial bitstreams may be determined in an encoder, and a parsing priority for each representative probability unit bitstream and/or each partial bitstream may also be determined in the encoder. there is. In the determination process, the encoder may determine the partial bitstream and priority by considering the inverse binarization order of the syntax elements of the symbol.

이하, 본 명세서에서 대표 확률 단위 비트스트림이 부분 비트스트림으로 분할 및/또는 분류되는 지점에 관한 정보는 부분 비트스트림 정보라 하고, 각각의 대표 확률 단위 비트스트림 및/또는 각각의 부분 비트스트림에 대한 파싱의 우선순위에 관한 정보는 우선순위 정보라 한다. 상술한 스케쥴링 정보는 상기 부분 비트스트림 정보 및 상기 우선순위 정보를 포함할 수 있으며, 스케쥴링을 위해 필요한 추가 정보가 존재하는 경우, 상기 추가 정보를 포함할 수도 있다.Hereinafter, in this specification, information about points at which a representative probability unit bitstream is divided and/or classified into partial bitstreams is referred to as partial bitstream information, and for each representative probability unit bitstream and/or each partial bitstream Information about the priority of parsing is referred to as priority information. The above-described scheduling information may include the partial bitstream information and the priority information, and may include additional information necessary for scheduling when there is additional information.

스케쥴링 정보가 결정되면, 엔트로피 부호화기는 상기 결정된 스케쥴링 정보를 비트스트림의 헤더(431)에 추가하여 복호화기로 전송할 수 있다. 복호화기는 전송된 스케쥴링 정보를 기반으로, 우선 순위가 높은 대표 확률 단위 비트스트림 및/또는 우선 순위가 높은 부분 비트스트림을 인식할 수 있고, 부분 비트스트림 단위로 파싱을 수행할 수 있다. 복호화기는 스케쥴링 정보를 기반으로 비트스트림 파싱 과정에 대한 스케쥴링을 수행하여, 역이진화 단계에서 발생되는 지연을 최소화할 수 있다. If the scheduling information is determined, the entropy encoder may add the determined scheduling information to the header 431 of the bitstream and transmit it to the decoder. The decoder may recognize a representative probability unit bitstream having a high priority and/or a partial bitstream having a high priority based on the transmitted scheduling information, and may perform parsing in units of the partial bitstream. The decoder can perform scheduling of the bitstream parsing process based on the scheduling information to minimize delay occurring in the debinarization step.

상술된 방법에 의하면, 복호화기에 포함된 복수의 빈 복호화기 간에 원활한 작업 분배가 이루어질 수 있고, 역이진화 단계에서의 지연이 최소화될 수 있다. 따라서, 병렬 엔트로피 복호화기에서의 출력 지연이 최소화될 수 있고, 엔트로피 복호화 수행 과정이 고속화될 수 있다.According to the above-described method, work can be smoothly distributed among a plurality of empty decoders included in the decoder, and delay in the debinarization step can be minimized. Accordingly, an output delay of the parallel entropy decoder can be minimized, and an entropy decoding process can be speeded up.

도 5는 본 발명에 따른 비트스트림 파싱 과정에 대한 스케쥴링 방법의 다른 실시예를 개략적으로 나타내는 개념도이다. 5 is a conceptual diagram schematically illustrating another embodiment of a scheduling method for a bitstream parsing process according to the present invention.

도 5는 복호화기에 포함된 빈(bin) 복호화기의 개수가 부호화기에 포함된 빈(bin) 부호화기의 개수보다 작은 경우의 스케쥴링 방법을 도시한다. 도 5의 실시예에서, 빈 부호화기의 개수는 4개, 빈 복호화기의 개수는 3개라 가정한다.5 illustrates a scheduling method when the number of bin decoders included in the decoder is smaller than the number of bin coders included in the encoder. In the embodiment of FIG. 5 , it is assumed that the number of bin coders is 4 and the number of bin decoders is 3.

도 5의 510은 부호화기에서 출력되어 복호화기로 전송되는 비트스트림의 실시예를 나타낸다. 상기 비트스트림을 구성하는 각각의 블록(점선으로 구분된 블록)은 최소 단위 비트스트림을 나타낼 수 있으며, 예를 들어, 각각의 최소 단위 비트스트림은 하나의 코드워드에 대응될 수 있다. 각 최소 단위 비트스트림에 표시된 번호는, 파싱 후에 역이진화가 수행되는 순서를 나타낼 수 있다. 또한, 도 5의 511, 513, 515, 517 각각은, 대표 확률 단위 비트스트림을 나타낼 수 있다. 도 5의 510에서는 총 4개의 대표 확률 단위 비트스트림이 존재할 수 있다.510 of FIG. 5 represents an embodiment of a bitstream output from an encoder and transmitted to a decoder. Each block constituting the bitstream (blocks separated by a dotted line) may represent a minimum unit bitstream, and for example, each minimum unit bitstream may correspond to one codeword. A number indicated in each minimum unit bitstream may indicate an order in which inverse binarization is performed after parsing. In addition, each of 511, 513, 515, and 517 of FIG. 5 may represent a representative probability unit bitstream. In 510 of FIG. 5 , a total of four representative probability unit bitstreams may exist.

도 5의 520은 도 510의 비트스트림을 3개의 빈 복호화기의 코어(core)에 할당하는 방법의 실시예를 도시한다. 도 5의 520을 참조하면, 하나의 대표 확률 단위 비트스트림은 하나의 빈 복호화기의 코어에 할당될 수 있다. 이 때, 각각의 빈 복호화기는, 이에 할당된 대표 확률 단위 비트스트림에 대하여 엔트로피 복호화를 수행할 수 있다. 520 of FIG. 5 illustrates an embodiment of a method for allocating the bitstream of FIG. 510 to the cores of three bin decoders. Referring to 520 of FIG. 5 , one representative probability unit bitstream may be allocated to a core of one bin decoder. In this case, each bin decoder may perform entropy decoding on the representative probability unit bitstream allocated thereto.

도 5의 520에서, 빈 복호화기의 개수는 3개이므로, 파싱이 시작될 때에는, 3개의 빈 복호화기에 각각 하나의 대표 확률 단위 비트스트림이 할당될 수 있다. 이 때, 빈 복호화기에 할당되지 못한 대표 확률 단위 비트스트림은, 빈 복호화기에 할당된 3개의 대표 확률 단위 비트스트림 중 적어도 하나가 모두 파싱된 후에, 파싱될 수 있다. 이 경우, 역이진화 우선순위가 높은 빈이 역이진화 우선순위가 낮은 빈보다 늦게 파싱되어, 역이진화 과정에서 지연이 발생할 수 있다. 즉, 도 5의 520의 실시예에 의한 파싱 과정은, 역이진화 단계의 지연을 야기할 수 있으며, 이는 전체 엔트로피 복호화기의 지연을 발생시킬 수 있다. 따라서, 역이진화 과정에서 발생되는 지연을 감소시킬 수 있는 엔트로피 복호화 방법이 제공될 수 있다.In 520 of FIG. 5 , since the number of bin decoders is three, when parsing starts, one representative probability unit bitstream may be allocated to each of the three bin decoders. In this case, the representative probability unit bitstream not allocated to the bin decoder may be parsed after at least one of the three representative probability unit bitstreams allocated to the bin decoder is all parsed. In this case, a bin with a higher debinarization priority is parsed later than a bin with a lower debinarization priority, and thus a delay may occur in the debinarization process. That is, the parsing process according to the embodiment of 520 of FIG. 5 may cause a delay in the debinarization step, which may cause a delay in the entire entropy decoder. Accordingly, an entropy decoding method capable of reducing a delay generated in an inverse binarization process may be provided.

도 5의 530은 부호화기에서 출력되어 복호화기로 전송되는 비트스트림의 다른 실시예를 나타낸다. 상기 비트스트림을 구성하는 각각의 블록(점선으로 구분된 블록)은 최소 단위 비트스트림을 나타낼 수 있으며, 예를 들어, 각각의 최소 단위 비트스트림은 하나의 코드워드에 대응될 수 있다. 각 최소 단위 비트스트림에 표시된 번호는, 파싱 후에 역이진화가 수행되는 순서를 나타낼 수 있다. 또한, 도 5의 533, 535, 537, 539 각각은, 대표 확률 단위 비트스트림을 나타낼 수 있다. 530 of FIG. 5 represents another embodiment of a bitstream output from an encoder and transmitted to a decoder. Each block constituting the bitstream (blocks separated by a dotted line) may represent a minimum unit bitstream, and for example, each minimum unit bitstream may correspond to one codeword. A number indicated in each minimum unit bitstream may indicate an order in which inverse binarization is performed after parsing. In addition, each of 533, 535, 537, and 539 of FIG. 5 may represent a representative probability unit bitstream.

또한, 도 5의 530의 비트스트림 헤더(531)는 비트스트림 파싱 과정의 스케쥴링을 위한, 스케쥴링 정보를 포함할 수 있다. 여기서, 상기 스케쥴링 정보는 부분 비트스트림 정보 및 우선순위 정보를 포함할 수 있으며, 스케쥴링을 위해 필요한 추가 정보가 존재하는 경우, 상기 추가 정보를 포함할 수도 있다. 스케쥴링이 수행되면, 재정렬된 비트스트림이 3개의 빈 복호화기에 할당될 수 있다. Also, the bitstream header 531 of 530 of FIG. 5 may include scheduling information for scheduling a bitstream parsing process. Here, the scheduling information may include partial bitstream information and priority information, and may include additional information necessary for scheduling if it exists. When scheduling is performed, the reordered bitstream may be allocated to three empty decoders.

도 5의 540은 도 530의 비트스트림을 3개의 빈 복호화기의 코어에 할당하는 방법의 실시예를 도시한다. 540 of FIG. 5 illustrates an embodiment of a method for allocating the bitstream of FIG. 530 to the cores of a three bin decoder.

도 5의 540을 참조하면, 하나의 대표 확률 단위 비트스트림은 복수 개의 부분 비트스트림으로 분류 및/또는 분할될 수 있다. 여기서, 하나의 부분 비트스트림은 한 개 또는 복수 개의 최소 단위 비트스트림을 포함할 수 있다. 대표 확률 단위 비트스트림이 부분 비트스트림으로 분할된 경우, 각각의 엔트로피 복호화기는, 대표 확률 단위 비트스트림 전체의 시작 지점이 아닌, 비트스트림의 중간 지점(예를 들어, 부분 비트스트림의 시작 지점)에서 파싱을 시작할 수 있다.Referring to 540 of FIG. 5 , one representative probability unit bitstream may be classified and/or divided into a plurality of partial bitstreams. Here, one partial bitstream may include one or a plurality of minimum unit bitstreams. When the representative probability unit bitstream is divided into partial bitstreams, each entropy decoder is performed at the middle point of the bitstream (eg, the starting point of the partial bitstream) instead of the starting point of the entire representative probability unit bitstream. You can start parsing.

복호화기는 심볼의 구문 요소에 대한 역이진화 순서를 고려하여, 역이진화 과정에서 우선적으로 필요한 빈이 먼저 파싱될 수 있도록, 부분 비트스트림을 재정렬하여 각각의 빈 복호화기에 할당되는 비트스트림을 결정할 수 있다. 이 때, 복호화기는 빈 복호화기의 개수를 고려하여, 복수의 빈 복호화기가 서로 비슷한 작업량을 가질 수 있도록 비트스트림을 할당할 수 있다. The decoder may determine a bitstream allocated to each bin decoder by rearranging the partial bitstream so that the bins that are preferentially needed in the debinarization process are parsed first, considering the debinarization order of the syntax elements of the symbol. At this time, the decoder may allocate the bitstream in consideration of the number of empty decoders so that the plurality of empty decoders can have a similar amount of work.

상술된 스케쥴링 과정을 수행하기 위해 필요한, 스케쥴링 정보(부분 비트스트림 정보 및 우선순위 정보)는 부호화기에서 결정될 수 있다. 상기 결정 과정에서, 부호화기는 심볼의 구문 요소에 대한 역이진화 순서를 고려하여, 부분 비트스트림 및 우선순위를 결정할 수 있다. 스케쥴링 정보가 결정되면, 엔트로피 부호화기는 상기 결정된 스케쥴링 정보를 비트스트림의 헤더(531)에 추가하여 복호화기로 전송할 수 있다. Scheduling information (partial bitstream information and priority information) necessary to perform the above-described scheduling process may be determined by an encoder. In the determination process, the encoder may determine the partial bitstream and priority by considering the inverse binarization order of the syntax elements of the symbol. When the scheduling information is determined, the entropy encoder may add the determined scheduling information to the header 531 of the bitstream and transmit it to the decoder.

복호화기는 전송된 스케쥴링 정보를 기반으로, 우선 순위가 높은 대표 확률 단위 비트스트림 및/또는 우선 순위가 높은 부분 비트스트림을 인식할 수 있고, 부분 비트스트림 단위로 파싱을 수행할 수 있다. 복호화기는 스케쥴링 정보를 기반으로 비트스트림 파싱 과정에 대한 스케쥴링을 수행하여, 역이진화 단계에서 발생되는 지연을 최소화할 수 있다. The decoder may recognize a representative probability unit bitstream having a high priority and/or a partial bitstream having a high priority based on the transmitted scheduling information, and may perform parsing in units of the partial bitstream. The decoder can perform scheduling of the bitstream parsing process based on the scheduling information to minimize delay occurring in the debinarization step.

상술된 방법에 의하면, 복호화기에 포함된 복수의 빈 복호화기 간에 원활한 작업 분배가 이루어질 수 있고, 역이진화 단계에서의 지연이 최소화될 수 있다. 따라서, 병렬 엔트로피 복호화기에서의 출력 지연이 최소화될 수 있고, 엔트로피 복호화 수행 과정이 고속화될 수 있다.According to the above-described method, work can be smoothly distributed among a plurality of empty decoders included in the decoder, and delay in the debinarization step can be minimized. Accordingly, an output delay of the parallel entropy decoder can be minimized, and an entropy decoding process can be speeded up.

도 6은 본 발명에 따른 병렬 엔트로피 부호화 장치의 일 실시예를 개략적으로 나타내는 블록도이다. 6 is a block diagram schematically illustrating an embodiment of a parallel entropy encoding apparatus according to the present invention.

도 6의 실시예에 따른 병렬 엔트로피 부호화 장치는 이진화기(binarizer)(610), 확률 예측기(probability estimator)(620), 확률 양자화기(probability quantizer)(630), 코드워드 길이 계산기(640), 매핑 테이블 계산기(650), 빈 시퀀스 계산기(660), 빈(bin) 부호화기(670), 버퍼(680) 및 비트스트림 결정기(690)를 포함할 수 있다. 도 6의 실시예에 따른 병렬 엔트로피 부호화 장치는 병렬 엔트로피 부호화를 수행하기 위해, 복수 개의 빈 부호화기(670)를 포함할 수 있다.The parallel entropy encoding apparatus according to the embodiment of FIG. 6 includes a binarizer 610, a probability estimator 620, a probability quantizer 630, a codeword length calculator 640, It may include a mapping table calculator 650, a bin sequence calculator 660, a bin encoder 670, a buffer 680, and a bitstream determiner 690. The parallel entropy encoding apparatus according to the embodiment of FIG. 6 may include a plurality of bin encoders 670 to perform parallel entropy encoding.

도 6을 참조하면, 이진화기(610)는 부호화 단계에서 얻어진 각 구문 요소들을 이진화할 수 있다. 이 때, 상기 이진화 과정에 의해 각 구문 요소들은 빈 시퀀스로 변환될 수 있다. 여기서, 빈 시퀀스는 0과 1의 조합으로 구성될 수 있다. 확률 예측기(620)는 이진화 과정에 의해 얻어진 빈들 각각에 대해, LPB 확률을 예측할 수 있다.Referring to FIG. 6 , the binarizer 610 may binarize each syntax element obtained in the encoding step. At this time, each syntax element may be converted into an empty sequence by the binarization process. Here, the empty sequence may be composed of a combination of 0 and 1. The probability predictor 620 may predict the LPB probability for each of the bins obtained by the binarization process.

확률 양자화기(630)는 부호화 효율을 높이기 위해, 확률 구간을 나누어, 빈들 각각에 대한 LPB 확률 양자화를 수행할 수 있다. 즉, 확률 양자화기(630)는 예측된 빈의 LPB 확률을 이용하여 각각의 빈이 어떤 확률 구간에 해당되는지 판단할 수 있다. 확률 양자화기(630)는 각각의 빈에 대해, 상기 각각의 빈에 대응되는 확률 구간에 따라, 복수 개의 빈 부호화기들 중 엔트로피 부호화에 사용되는 빈(bin) 부호화기(670)를 결정할 수 있다.The stochastic quantizer 630 may perform LPB stochastic quantization on each of the bins by dividing the stochastic interval in order to increase coding efficiency. That is, the probability quantizer 630 can determine which probability interval each bin corresponds to by using the LPB probability of the predicted bin. The stochastic quantizer 630 may determine a bin coder 670 used for entropy encoding among a plurality of bin coders according to a probability interval corresponding to each bin for each bin.

코드워드 길이 계산기(640)는, 대표 확률 값 각각에 대해, 부호화 효율을 고려하여 최적의 코드워드 길이(최소 길이 및 최대 길이)를 도출 및/또는 획득할 수 있다. 이 때, 코드워드 길이 계산기(640)는 부호화 효율을 유지하기 위해, 대표 확률 값의 특성을 기반으로, 코드워드의 최소 길이 및 최대 길이를 결정할 수 있다.The codeword length calculator 640 may derive and/or obtain an optimal codeword length (minimum length and maximum length) for each representative probability value in consideration of encoding efficiency. At this time, the codeword length calculator 640 may determine the minimum length and the maximum length of the codeword based on the characteristics of the representative probability value in order to maintain encoding efficiency.

일 실시예로, 도출된 코드워드의 최소 길이 및 최대 길이에 관한 정보(코드워드 길이 정보)는 비트스트림의 헤더에 포함되어 복호화기로 전송될 수 있다. 이 때, 복호화기는 상기 헤더에 포함된 코드워드 길이 정보를 이용하여, 각각의 빈 복호화기에서 파싱되는 코드워드의 최소 길이 및 최대 길이를 결정할 수 있다. As an embodiment, information on the minimum and maximum lengths of the derived codeword (codeword length information) may be included in a header of a bitstream and transmitted to a decoder. In this case, the decoder may determine the minimum length and the maximum length of the codeword parsed by each bin decoder using the codeword length information included in the header.

다른 실시예로, 각각의 대표 확률에 대한 코드워드의 최대 길이 및 최소 길이는, 부호화기 및 복호화기에서 동일한 알고리즘을 이용하여 도출될 수도 있다. 이 때, 코드워드의 최대 길이 및 최소 길이는, 각각의 빈 부호화기의 대표 확률 값에 기반하여 도출될 수 있다. In another embodiment, the maximum length and minimum length of the codeword for each representative probability may be derived using the same algorithm in the encoder and decoder. In this case, the maximum length and minimum length of the codeword may be derived based on the representative probability value of each bin coder.

상술한 실시예에 따르면, 코드워드 길이 계산기(640)에 의해 코드워드의 길이가 일정 범위로 제한됨으로써, 비트스트림에 대한 파싱 속도가 향상될 수 있다.According to the above-described embodiment, since the codeword length is limited to a certain range by the codeword length calculator 640, the bitstream parsing speed can be improved.

매핑 테이블 계산기(650)는 코드워드 길이 계산기(640)에 의해 생성된 코드워드 길이 정보를 이용하여, 매핑 테이블을 선택 및/또는 생성할 수 있다. 여기서, 상기 매핑 테이블은 빈 시퀀스가 코드워드로 변환 및/또는 매핑되는 과정에 사용될 수 있다. 따라서, 상기 매핑 테이블은 코드워드-빈 매핑 테이블로 불릴 수도 있다.The mapping table calculator 650 may select and/or generate a mapping table using codeword length information generated by the codeword length calculator 640 . Here, the mapping table may be used in a process of converting and/or mapping empty sequences into codewords. Accordingly, the mapping table may be referred to as a codeword-bin mapping table.

일례로, 코드워드의 최소 길이 및 최대 길이는 소정의 고정된 값일 수 있다. 이 때, 부호화기 및 복호화기에는 상기 범위 내의 코드워드 길이 값 각각에 대한 소정의 매핑 테이블이 동일하게 저장되어 있을 수 있다. 코드워드의 최소 길이와 최대 길이가 동일한 경우에는, 하나의 고정된 길이의 매핑 테이블이 저장되어 있을 수도 있다.As an example, the minimum length and maximum length of a codeword may be predetermined fixed values. In this case, predetermined mapping tables for each codeword length value within the range may be equally stored in the encoder and decoder. When the minimum and maximum lengths of codewords are the same, one fixed-length mapping table may be stored.

부호화기는 상기 저장된 매핑 테이블 중에서 하나를 선택하여 사용할 수 있다. 또한 부호화기는, 상기 저장된 매핑 테이블 중에서 어떤 매핑 테이블이 사용되는지 여부를 지시하는, 매핑 테이블 선택 정보를 비트스트림의 헤더에 추가하여 복호화기로 전송할 수 있다. 이 때, 복호화기는 전송된 매핑 테이블 선택 정보를 이용하여, 저장된 복수의 매핑 테이블 중에서 하나의 매핑 테이블을 선택할 수 있다.The encoder may select and use one of the stored mapping tables. In addition, the encoder may add mapping table selection information indicating which mapping table is used among the stored mapping tables to a header of the bitstream and transmit the same to the decoder. At this time, the decoder may select one mapping table from among a plurality of stored mapping tables using the transmitted mapping table selection information.

다른 예로, 상기 매핑 테이블은, 부호화기 및 복호화기에서 동일한 생성 알고리즘을 이용하여 생성될 수도 있다. 이 때, 부호화기 및 복호화기는 최소 길이 및 최대 길이에 의해 정해지는 코드워드 길이 범위 내에서, 각각의 코드워드 길이에 대응되는 매핑 테이블을 생성할 수 있다.As another example, the mapping table may be generated using the same generation algorithm in an encoder and a decoder. At this time, the encoder and decoder may generate a mapping table corresponding to each codeword length within a codeword length range determined by the minimum length and the maximum length.

상기 생성 알고리즘 외에, 매핑 테이블 생성을 위한 추가 정보가 존재하는 경우, 부호화기는 상기 추가 정보를 비트스트림의 헤더에 추가하여 복호화기로 전송할 수 있다. 여기서, 상기 추가 정보에는 예를 들어, 코드워드의 최대 길이 및 최소 길이에 관한 정보가 있을 수 있다. 이 때, 복호화기는 상기 전송된 코드워드의 최대 길이 및 최소 길이에 관한 정보를 이용하여 매핑 테이블을 생성할 수 있다.In addition to the generation algorithm, if additional information for generating a mapping table exists, the encoder may add the additional information to a header of the bitstream and transmit the additional information to the decoder. Here, the additional information may include, for example, information about the maximum length and minimum length of the codeword. At this time, the decoder may generate a mapping table using information on the maximum length and minimum length of the transmitted codeword.

상술한 경우에, 부호화기는 생성된 매핑 테이블 중에서 하나를 선택하여 사용할 수 있다. 또한 부호화기는, 상기 생성된 매핑 테이블 중에서 어떤 매핑 테이블이 사용되는지 여부를 지시하는, 매핑 테이블 선택 정보를 비트스트림의 헤더에 추가하여 복호화기로 전송할 수 있다. 이 때, 복호화기는 전송된 매핑 테이블 선택 정보를 이용하여, 복수의 매핑 테이블 중에서 하나의 매핑 테이블을 선택할 수 있다.In the above case, the encoder may select and use one of the generated mapping tables. Also, the encoder may add mapping table selection information indicating which mapping table is used among the generated mapping tables to a header of the bitstream and transmit the same to the decoder. In this case, the decoder may select one mapping table from among a plurality of mapping tables using the transmitted mapping table selection information.

빈 시퀀스 계산기(660)는, 심볼의 구문 요소에 대한 이진화/역이진화 순서에 관한 정보 및 각각의 빈의 확률에 관한 정보를 도출할 수 있다. 빈 시퀀스 계산기(660)는 상기 도출된 정보를 기반으로, 비트스트림 파싱 과정에 대한 스케쥴링 정보를 도출할 수 있다. 여기서, 스케쥴링은 심볼의 구문 요소에 대한 역이진화 순서를 고려하여, 비트스트림을 재정렬하는 프로세스를 의미할 수 있다.The bin sequence calculator 660 can derive information about the binarization/inverse binarization order of syntax elements of symbols and information about the probability of each bin. The bin sequence calculator 660 may derive scheduling information for a bitstream parsing process based on the derived information. Here, scheduling may refer to a process of rearranging a bitstream by considering an inverse binarization order of syntax elements of symbols.

도 4에서 상술한 바와 같이, 스케쥴링 정보는 부분 비트스트림 정보 및 우선순위 정보를 포함할 수 있으며, 스케쥴링을 위해 필요한 추가 정보가 존재하는 경우, 상기 추가 정보를 포함할 수도 있다. 여기서, 부분 비트스트림 정보는 대표 확률 단위 비트스트림이 부분 비트스트림으로 분할되는 지점에 관한 정보를 나타내고, 우선순위 정보는 각각의 대표 확률 비트스트림 및/또는 각각의 부분 비트스트림에 대한 파싱의 우선순위에 관한 정보를 나타낼 수 있다. As described above with reference to FIG. 4 , scheduling information may include partial bitstream information and priority information, and may include additional information necessary for scheduling if it exists. Here, the partial bitstream information indicates information about a point at which a representative probability unit bitstream is divided into partial bitstreams, and the priority information is a parsing priority for each representative probability bitstream and/or each partial bitstream. information about can be displayed.

상술한 바와 같이, 부호화기에 포함된 빈 부호화기의 개수는 복호화기에 포함된 빈 복호화기의 개수와 서로 다를 수 있고, 예를 들어, 빈 복호화기의 개수가 빈 복호화기의 개수보다 작을 수 있다. 이 경우, 역이진화 우선순위가 높은 빈이 역이진화 우선순위가 낮은 빈보다 늦게 파싱되어, 역이진화 과정에서 지연이 발생할 수 있다. 이 때, 빈 시퀀스 계산기(660)에서 도출된 스케쥴링 정보가 엔트로피 복호화 과정에 사용됨으로써, 역이진화 과정에서 발생되는 지연이 최소화될 수 있다. 도출된 스케쥴링 정보를 비트스트림의 헤더에 추가 및/또는 포함시키기 위해, 빈 시퀀스 계산기(660)는 상기 스케쥴링 정보를 비트스트림 결정기(690)로 보낼 수 있다.As described above, the number of bin coders included in the encoder may be different from the number of bin decoders included in the decoder, and for example, the number of bin decoders may be smaller than the number of bin decoders. In this case, a bin with a higher debinarization priority is parsed later than a bin with a lower debinarization priority, and thus a delay may occur in the debinarization process. At this time, the scheduling information derived from the bin sequence calculator 660 is used in the entropy decoding process, so that the delay generated in the inverse binarization process can be minimized. In order to add and/or include the derived scheduling information in the header of the bitstream, the bin sequence calculator 660 may send the scheduling information to the bitstream determiner 690.

상술한 코드워드 길이 계산기(640) 및 빈 시퀀스 계산기(660)에서 도출된 정보가 엔트로피 복호화에 사용되는 경우, 병렬 엔트로피 복호화기의 출력 지연이 최소화될 수 있다. 따라서, 엔트로피 복호화 수행 과정이 고속화될 수 있다.When the information derived from the above-described codeword length calculator 640 and bin sequence calculator 660 is used for entropy decoding, output delay of the parallel entropy decoder can be minimized. Accordingly, the entropy decoding process can be speeded up.

빈 부호화기(670)는 매핑 테이블 계산기(650)에 의해 도출된 매핑 테이블을 이용하여, 각각의 빈(bin)에 대한 엔트로피 부호화를 수행할 수 있다. 각각의 빈 부호화기(670)는, 대표 확률에 대응하는 매핑 테이블을 이용하여, 이진화된 빈들을 코드워드로 변환할 수 있다. 빈 부호화기(670)에서 출력된 코드워드는 버퍼(680)에 저장될 수 있다. The bin encoder 670 may perform entropy encoding on each bin using the mapping table derived by the mapping table calculator 650. Each bin encoder 670 may convert binarized bins into codewords using a mapping table corresponding to a representative probability. Codewords output from the bin encoder 670 may be stored in the buffer 680.

버퍼에 저장된 코드워드들은 비트스트림 결정기(690)를 통해 복호화기로 전송되거나 저장될 수 있다. 비트스트림 결정기(690)는 비트스트림의 헤더에, 헤더 정보를 추가할 수 있다. 상기 헤더 정보에는 예를 들어, 코드워드 길이 정보, 매핑 테이블 선택 정보, 매핑 테이블 생성을 위해 추가되는 정보, 스케쥴링 정보 등이 있을 수 있다. 비트스트림 결정기(690)는 생성된 비트스트림을 복호화기로 전송할 수 있다. 복호화기는, 전송된 비트스트림에 포함된 헤더 정보를 이용하여 코드워드 길이를 제한하거나 비트스트림을 재정렬함으로써, 복호화 지연을 최소화할 수 있고, 출력 속도를 향상시킬 수 있다.The codewords stored in the buffer may be transmitted or stored to a decoder through the bitstream determiner 690. The bitstream determiner 690 may add header information to the header of the bitstream. The header information may include, for example, codeword length information, mapping table selection information, information added to generate a mapping table, scheduling information, and the like. The bitstream determiner 690 may transmit the generated bitstream to a decoder. The decoder can minimize decoding delay and improve output speed by limiting the codeword length or rearranging the bitstream using header information included in the transmitted bitstream.

도 7은 본 발명에 따른 병렬 엔트로피 복호화 장치의 일 실시예를 개략적으로 나타내는 블록도이다. 7 is a block diagram schematically illustrating an embodiment of a parallel entropy decoding apparatus according to the present invention.

도 7의 실시예에 따른 병렬 엔트로피 복호화 장치는 코드워드 길이 계산기(710), 매핑 테이블 계산기(720), 비트스트림 결정기(730), 빈 복호화기(740), 버퍼(750), 확률 양자화기(760), 확률 예측기(770) 및 역이진화기(780)를 포함할 수 있다. 도 7의 실시예에 따른 병렬 엔트로피 복호화 장치는 병렬 엔트로피 복호화를 수행하기 위해, 복수 개의 빈(bin) 복호화기(740)를 포함할 수 있다.The parallel entropy decoding apparatus according to the embodiment of FIG. 7 includes a codeword length calculator 710, a mapping table calculator 720, a bitstream determiner 730, a bin decoder 740, a buffer 750, a probability quantizer ( 760), a probability predictor 770 and an inverse binarizer 780. The parallel entropy decoding apparatus according to the embodiment of FIG. 7 may include a plurality of bin decoders 740 to perform parallel entropy decoding.

도 7을 참조하면, 코드워드 길이 계산기(710)는 부호화기에서 전송된 비트스트림의 헤더로부터 코드워드 길이 정보를 도출할 수 있다. Referring to FIG. 7 , a codeword length calculator 710 may derive codeword length information from a header of a bitstream transmitted from an encoder.

상술한 바와 같이, 가변적인 코드워드의 길이에 의해, 비트스트림 파싱 과정에서 오버헤드가 발생하여 파싱 속도가 감소될 수 있다. 이와 같은 문제점을 해결하기 위해 부호화기에서는, 병렬 엔트로피 부호화기가 갖는 대표 LPB 확률 각각에 대해, 코드워드의 최소 길이 및 최대 길이가 정해질 수 있다. As described above, due to the variable length of the codeword, overhead may be generated in the bitstream parsing process, and the parsing speed may be reduced. In order to solve this problem, in the encoder, the minimum length and the maximum length of the codeword may be determined for each of the representative LPB probabilities of the parallel entropy encoder.

일 실시예로, 도출된 코드워드의 최소 길이 및 최대 길이에 관한 정보(코드워드 길이 정보)는 비트스트림의 헤더에 포함되어 복호화기로 전송될 수 있다. 이 때, 복호화기는 상기 헤더에 포함된 코드워드 길이 정보를 이용하여, 각각의 빈 복호화기에서 파싱되는 코드워드의 최소 길이 및 최대 길이를 결정할 수 있다. As an embodiment, information on the minimum and maximum lengths of the derived codeword (codeword length information) may be included in a header of a bitstream and transmitted to a decoder. In this case, the decoder may determine the minimum length and the maximum length of the codeword parsed by each bin decoder using the codeword length information included in the header.

다른 실시예로, 각각의 대표 확률에 대한 코드워드의 최대 길이 및 최소 길이는, 부호화기 및 복호화기에서 동일한 알고리즘을 이용하여 도출될 수도 있다. 이 때, 코드워드의 최대 길이 및 최소 길이는, 각각의 빈 부호화기의 대표 확률 값에 기반하여 도출될 수 있다. In another embodiment, the maximum length and minimum length of the codeword for each representative probability may be derived using the same algorithm in the encoder and decoder. In this case, the maximum length and minimum length of the codeword may be derived based on the representative probability value of each bin coder.

상술한 실시예에 따르면, 코드워드 길이 계산기(710)에 의해 코드워드의 길이가 일정 범위로 제한됨으로써, 비트스트림에 대한 파싱 속도가 향상될 수 있다.According to the above-described embodiment, since the codeword length is limited to a certain range by the codeword length calculator 710, the bitstream parsing speed can be improved.

매핑 테이블 계산기(720)는 코드워드 길이 계산기(710)에 의해 도출된 코드워드 길이 정보를 이용하여, 매핑 테이블을 선택 및/또는 생성할 수 있다. 이 때, 상기 매핑 테이블은 각 빈 복호화기(740)의 대표 확률에 기반하여 선택 및/또는 생성될 수 있다.The mapping table calculator 720 may select and/or generate a mapping table using codeword length information derived by the codeword length calculator 710 . In this case, the mapping table may be selected and/or generated based on the representative probability of each bin decoder 740 .

일례로, 코드워드의 최소 길이 및 최대 길이는 소정의 고정된 값일 수 있다. 이 때, 부호화기 및 복호화기에는 상기 범위 내의 코드워드 길이 값 각각에 대한 소정의 매핑 테이블이 동일하게 저장되어 있을 수 있다. 코드워드의 최소 길이와 최대 길이가 동일한 경우에는, 하나의 고정된 길이의 매핑 테이블이 저장되어 있을 수도 있다.As an example, the minimum length and maximum length of a codeword may be predetermined fixed values. In this case, predetermined mapping tables for each codeword length value within the range may be equally stored in the encoder and decoder. When the minimum and maximum lengths of codewords are the same, one fixed-length mapping table may be stored.

부호화기는 상기 저장된 매핑 테이블 중에서 하나를 선택하여 사용할 수 있다. 또한 부호화기는, 상기 저장된 매핑 테이블 중에서 어떤 매핑 테이블이 사용되는지 여부를 지시하는, 매핑 테이블 선택 정보를 비트스트림의 헤더에 추가하여 복호화기로 전송할 수 있다. 이 때, 복호화기는 전송된 매핑 테이블 선택 정보를 이용하여, 저장된 복수의 매핑 테이블 중에서 하나의 매핑 테이블을 선택할 수 있다.The encoder may select and use one of the stored mapping tables. In addition, the encoder may add mapping table selection information indicating which mapping table is used among the stored mapping tables to a header of the bitstream and transmit the same to the decoder. At this time, the decoder may select one mapping table from among a plurality of stored mapping tables using the transmitted mapping table selection information.

다른 예로, 상기 매핑 테이블은, 부호화기 및 복호화기에서 동일한 생성 알고리즘을 이용하여 생성될 수도 있다. 이 때, 부호화기 및 복호화기는 최소 길이 및 최대 길이에 의해 정해지는 코드워드 길이 범위 내에서, 각각의 코드워드 길이에 대응되는 매핑 테이블을 생성할 수 있다.As another example, the mapping table may be generated using the same generation algorithm in an encoder and a decoder. At this time, the encoder and decoder may generate a mapping table corresponding to each codeword length within a codeword length range determined by the minimum length and the maximum length.

상기 생성 알고리즘 외에, 매핑 테이블 생성을 위한 추가 정보가 존재하는 경우, 부호화기는 상기 추가 정보를 비트스트림의 헤더에 추가하여 복호화기로 전송할 수 있다. 여기서, 상기 추가 정보에는 예를 들어, 코드워드의 최대 길이 및 최소 길이에 관한 정보가 있을 수 있으며, 코드워드의 최대 길이 및 최소 길이는 병렬 엔트로피 부호화기가 갖는 대표 LPB 확률 각각에 대해 정해질 수 있다. 이 때, 복호화기는 상기 전송된 코드워드의 최대 길이 및 최소 길이에 관한 정보를 이용하여 매핑 테이블을 생성할 수 있다.In addition to the generation algorithm, if additional information for generating a mapping table exists, the encoder may add the additional information to a header of the bitstream and transmit the additional information to the decoder. Here, the additional information may include, for example, information on the maximum length and minimum length of the codeword, and the maximum length and minimum length of the codeword may be determined for each of the representative LPB probabilities of the parallel entropy encoder. . At this time, the decoder may generate a mapping table using information on the maximum length and minimum length of the transmitted codeword.

상술한 경우에, 부호화기는 생성된 매핑 테이블 중에서 하나를 선택하여 사용할 수 있다. 또한 부호화기는, 상기 생성된 매핑 테이블 중에서 어떤 매핑 테이블이 사용되는지 여부를 지시하는, 매핑 테이블 선택 정보를 비트스트림의 헤더에 추가하여 복호화기로 전송할 수 있다. 이 때, 복호화기는 전송된 매핑 테이블 선택 정보를 이용하여, 복수의 매핑 테이블 중에서 하나의 매핑 테이블을 선택할 수 있다. In the above case, the encoder may select and use one of the generated mapping tables. Also, the encoder may add mapping table selection information indicating which mapping table is used among the generated mapping tables to a header of the bitstream and transmit the same to the decoder. In this case, the decoder may select one mapping table from among a plurality of mapping tables using the transmitted mapping table selection information.

상술한 실시예에서, 매핑 테이블은 부호화기로부터 전송된 코드워드 길이 정보를 이용하여 결정된다. 따라서, 각각의 대표 확률에 대한 코드워드의 길이가 제한될 수 있으며, 파싱 과정의 지연이 최소화되고 빈 복호화기(740)의 출력 속도가 향상될 수 있다.In the above-described embodiment, the mapping table is determined using codeword length information transmitted from the encoder. Therefore, the length of the codeword for each representative probability can be limited, the delay of the parsing process can be minimized, and the output speed of the bin decoder 740 can be improved.

비트스트림 결정기(730)는 부호화기로부터 전송된 비트스트림의 헤더에 포함된, 헤더 정보를 복호화할 수 있다. 상기 헤더 정보는 예를 들어, 스케쥴링 정보(부분 비트스트림 정보 및/또는 우선순위 정보)를 포함할 수 있다. 비트스트림 결정기(730)는 상기 스케쥴링 정보를 이용하여, 각 대표 확률 단위 비트스트림을 부분 비트스트림으로 분류하고, 빈 복호화기(740)로 입력되는 비트스트림에 대한 스케쥴링을 수행할 수 있다. 이 때, 복호화기는 빈 복호화기의 개수를 고려하여, 복수의 빈 복호화기가 서로 비슷한 작업량을 가질 수 있도록, 비트스트림을 빈 복호화기에 할당할 수 있다. 스케쥴링 방법에 대한 구체적인 실시예는 도 4, 도 5에서 상술한 바 있으므로, 생략하기로 한다.The bitstream determiner 730 may decode header information included in the header of the bitstream transmitted from the encoder. The header information may include, for example, scheduling information (partial bitstream information and/or priority information). The bitstream determiner 730 may classify each representative probability unit bitstream into a partial bitstream using the scheduling information, and may perform scheduling on a bitstream input to the bin decoder 740 . In this case, the decoder may allocate the bitstream to the bin decoders in consideration of the number of bin decoders so that the plurality of bin decoders may have similar workloads. Since specific embodiments of the scheduling method have been described above with reference to FIGS. 4 and 5, it will be omitted.

비트스트림 결정기(730)는 부호화기로부터 전송된 스케쥴링 정보를 이용하여 비트스트림에 대한 스케쥴링을 수행함으로써, 역이진화 단계에서의 입력 지연을 최소화할 수 있다. The bitstream determiner 730 can minimize input delay in the debinarization step by performing scheduling on the bitstream using the scheduling information transmitted from the encoder.

상술한 코드워드 길이 계산기(710) 및 비트스트림 결정기(730)에서 도출된 정보가 엔트로피 복호화에 사용되는 경우, 병렬 엔트로피 복호화기의 출력 속도가 향상될 수 있다. 따라서, 엔트로피 복호화 수행 과정이 고속화될 수 있다.When the information derived from the above-described codeword length calculator 710 and bitstream determiner 730 is used for entropy decoding, the output speed of the parallel entropy decoder can be improved. Accordingly, the entropy decoding process can be speeded up.

각각의 빈 복호화기(740)는 스케쥴링된 비트스트림 및 대표 확률에 대응하는 매핑 테이블을 이용하여 코드워드를 빈 시퀀스로 변환할 수 있다. 이 때, 각각의 빈 복호화기(740)로 입력되는 비트스트림은 일례로 대표 LPB 확률에 따라 결정될 수 있다.Each bin decoder 740 may convert a codeword into a bin sequence using a mapping table corresponding to a scheduled bitstream and a representative probability. At this time, the bitstream input to each bin decoder 740 may be determined according to the representative LPB probability, for example.

빈 복호화기(740)에서 출력된 빈들은 순서에 따라 버퍼(750), 확률 양자화기(760)를 거쳐 확률 예측기(770)로 입력될 수 있다. 확률 예측기(770)는 입력되는 빈(bin)에 대한, LPB 확률을 도출할 수 있다. 빈 시퀀스는, 확률 예측기(770)를 거친 후, 역이진화기(780)를 통해 의미 있는 구문 요소의 값으로 복호화될 수 있다.The bins output from the bin decoder 740 may be input to the probability predictor 770 through the buffer 750 and the probability quantizer 760 in order. The probability predictor 770 may derive an LPB probability for an input bin. After passing through the probability predictor 770, the empty sequence may be decoded into a value of a meaningful syntax element through an inverse binarizer 780.

도 8은 본 발명에 따른 병렬 엔트로피 부호화 장치의 다른 실시예를 개략적으로 나타내는 블록도이다. 8 is a block diagram schematically illustrating another embodiment of a parallel entropy encoding apparatus according to the present invention.

도 8의 실시예에 따른 병렬 엔트로피 부호화 장치는 이진화기(810), 확률 예측기(820), 확률 양자화기(830), 코드워드 길이 계산기(840), 매핑 테이블 계산기(850), 빈(bin) 부호화기(860) 및 버퍼(870)를 포함할 수 있다. 도 8의 실시에에 따른 병렬 엔트로피 부호화 장치는 병렬 엔트로피 부호화를 수행하기 위해, 복수 개의 빈 부호화기(860)를 포함할 수 있다.The parallel entropy encoding apparatus according to the embodiment of FIG. 8 includes a binarizer 810, a probability predictor 820, a probability quantizer 830, a codeword length calculator 840, a mapping table calculator 850, and a bin An encoder 860 and a buffer 870 may be included. The parallel entropy encoding apparatus according to the embodiment of FIG. 8 may include a plurality of bin encoders 860 to perform parallel entropy encoding.

상술한 바와 같이, 부호화기는 파싱 과정에서 발생하는 오버헤드를 감소시켜 복호화기의 출력 속도를 향상시키기 위해, 코드워드의 길이를 제한할 수 있다. 소정의 고정된 길이의 코드워드가 사용되는 경우에는 부호화 효율이 감소될 수 있으므로, 부호화기는 빈 부호화기 및/또는 빈 복호화기 각각에 대해, 코드워드의 최소 길이 및 최대 길이를 결정할 수 있다.As described above, the encoder may limit the length of the codeword in order to improve output speed of the decoder by reducing overhead generated in the parsing process. Since encoding efficiency may be reduced when a codeword having a predetermined fixed length is used, the encoder may determine a minimum length and a maximum length of the codeword for each bin encoder and/or bin decoder.

도 8을 참조하면, 코드워드 길이 계산기(840)는, 빈 부호화기의 대표 확률 값 각각에 대해, 부호화 효율을 고려하여 최적의 코드워드 길이(최소 길이 및 최대 길이)를 도출 및/또는 획득할 수 있다. 이 때, 코드워드 길이 계산기(840)는 부호화 효율을 유지하기 위해, 대표 확률의 특성을 기반으로, 코드워드의 최소 길이 및 최대 길이를 결정할 수 있다. Referring to FIG. 8 , the codeword length calculator 840 may derive and/or obtain an optimal codeword length (minimum length and maximum length) for each representative probability value of an empty encoder in consideration of encoding efficiency. there is. At this time, the codeword length calculator 840 may determine the minimum length and the maximum length of the codeword based on the characteristics of the representative probability in order to maintain encoding efficiency.

도 8의 실시예에서, 상술된 구성을 제외한 나머지 구성의 동작은 도 6의 실시예에서와 동일하므로 생략한다.In the embodiment of FIG. 8 , operations of other components except for the above-described components are the same as in the embodiment of FIG. 6 and thus are omitted.

도 9는 본 발명에 따른 병렬 엔트로피 복호화 장치의 다른 실시예를 개략적으로 나타내는 블록도이다. 9 is a block diagram schematically illustrating another embodiment of a parallel entropy decoding apparatus according to the present invention.

도 9의 실시예에 따른 엔트로피 복호화 장치는 코드워드 길이 계산기(910), 매핑 테이블 계산기(920), 빈(bin) 복호화기(930), 버퍼(940), 확률 양자화기(950), 확률 예측기(960) 및 역이진화기(970)를 포함한다. 도 9의 실시예에 따른 병렬 엔트로피 복호화 장치는 병렬 엔트로피 복호화를 수행하기 위해, 복수의 빈(bin) 복호화기(930)를 포함할 수 있다. 도 9의 실시예에 따른 병렬 엔트로피 복호화 장치는 도 7의 실시예에 따른 병렬 엔트로피 복호화 장치와 유사하게 동작할 수 있다. The entropy decoding apparatus according to the embodiment of FIG. 9 includes a codeword length calculator 910, a mapping table calculator 920, a bin decoder 930, a buffer 940, a probability quantizer 950, and a probability predictor. (960) and inverse binarizer (970). The parallel entropy decoding apparatus according to the embodiment of FIG. 9 may include a plurality of bin decoders 930 to perform parallel entropy decoding. The parallel entropy decoding apparatus according to the embodiment of FIG. 9 may operate similarly to the parallel entropy decoding apparatus according to the embodiment of FIG. 7 .

부호화기로부터 전송된 비트스트림은, 복호화기에 포함된 복수의 빈 복호화기(930)에 할당될 수 있다. 이 때, 복호화기는 상기 전송된 비트스트림의 헤더에 포함된 헤더 정보를 이용하여, 각각의 빈 복호화기에 할당되는 비트스트림을 결정할 수 있다. 이 때, 가변적인 코드워드의 길이에 의해, 비트스트림의 파싱 과정에서 오버헤드가 발생하여 파싱 속도가 감소될 수 있다. 이와 같은 문제점을 해결하기 위해 코드워드 길이 계산기(910)는, 병렬 엔트로피 부호화기가 갖는 대표 LPB 확률 각각에 대해, 코드워드의 최소 길이 및 최대 길이를 결정할 수 있다. A bitstream transmitted from the encoder may be allocated to a plurality of bin decoders 930 included in the decoder. In this case, the decoder may determine a bitstream allocated to each bin decoder using header information included in a header of the transmitted bitstream. In this case, due to the variable length of the codeword, overhead may be generated in the process of parsing the bitstream, and the parsing speed may be reduced. To solve this problem, the codeword length calculator 910 may determine a minimum length and a maximum length of a codeword for each of the representative LPB probabilities of the parallel entropy encoder.

일 실시예로, 부호화기에서 도출된 코드워드의 최소 길이 및 최대 길이에 관한 정보(코드워드 길이 정보)가 비트스트림의 헤더에 포함되어 복호화기로 전송될 수 있다. 이 때, 코드워드 길이 계산기(910)는 상기 헤더에 포함된 코드워드 길이 정보를 이용하여, 각각의 빈 복호화기에서 파싱되는 코드워드의 최소 길이 및 최대 길이를 결정할 수 있다. As an embodiment, information about the minimum and maximum lengths of codewords derived from the encoder (codeword length information) may be included in a header of a bitstream and transmitted to a decoder. At this time, the codeword length calculator 910 may determine the minimum and maximum lengths of codewords parsed by each bin decoder using the codeword length information included in the header.

다른 실시예로, 각각의 대표 확률에 대한 코드워드의 최대 길이 및 최소 길이는, 부호화기 및 복호화기에서 동일한 알고리즘을 이용하여 도출될 수도 있다. 이 때, 코드워드의 최대 길이 및 최소 길이는, 각각의 빈 부호화기의 대표 확률 값에 기반하여 도출될 수 있다. In another embodiment, the maximum length and minimum length of the codeword for each representative probability may be derived using the same algorithm in the encoder and decoder. In this case, the maximum length and minimum length of the codeword may be derived based on the representative probability value of each bin coder.

매핑 테이블 계산기(920)는, 각각의 빈(bin) 복호화기(930)의 대표 확률에 관한 정보 및 코드워드 길이 계산기(910)에 의해 결정된 코드워드의 최소 길이 및 최대 길이에 관한 정보를 이용하여, 매핑 테이블을 결정할 수 있다. 매핑 테이블 결정 방법의 구체적인 실시예는 도 7에서 상술된 바 있으므로, 생략하기로 한다.The mapping table calculator 920 uses information about the representative probability of each bin decoder 930 and information about the minimum and maximum lengths of the codeword determined by the codeword length calculator 910 , the mapping table can be determined. Since the specific embodiment of the method of determining the mapping table has been described in detail with reference to FIG. 7 , it will be omitted.

상술된 코드워드 길이 계산기(910) 및 매핑 테이블 계산기(920)에 의해, 병렬 엔트로피 복호화기의 출력 속도가 향상될 수 있다. 따라서, 엔트로피 복호화 수행 과정이 고속화될 수 있다.The output speed of the parallel entropy decoder can be improved by the codeword length calculator 910 and the mapping table calculator 920 described above. Accordingly, the entropy decoding process can be speeded up.

도 9의 실시예에서, 상술된 구성을 제외한 나머지 구성의 동작은 도 7의 실시예에서와 동일하므로 생략한다.In the embodiment of FIG. 9 , operations of other components except for the above-described components are the same as in the embodiment of FIG. 7 and thus are omitted.

*도 10은 본 발명에 따른 병렬 엔트로피 부호화 장치의 또 다른 실시예를 개략적으로 나타내는 블록도이다. * FIG. 10 is a block diagram schematically illustrating another embodiment of a parallel entropy encoding apparatus according to the present invention.

도 10의 실시예에 따른 따른 병렬 엔트로피 부호화 장치는 이진화기(1010), 확률 예측기(1020), 확률 양자화기(1030), 빈 시퀀스 계산기(1040), 빈(bin) 부호화기(1050), 버퍼(1060) 및 비트스트림 결정기(1070)를 포함할 수 있다. 도 10의 실시에에 따른 병렬 엔트로피 부호화 장치는 병렬 엔트로피 부호화를 수행하기 위해, 복수 개의 빈 부호화기(1050)를 포함할 수 있다.The parallel entropy encoding apparatus according to the embodiment of FIG. 10 includes a binarizer 1010, a probability predictor 1020, a probability quantizer 1030, a bin sequence calculator 1040, a bin encoder 1050, a buffer ( 1060) and a bitstream determiner 1070. The parallel entropy encoding apparatus according to the embodiment of FIG. 10 may include a plurality of bin encoders 1050 to perform parallel entropy encoding.

도 10을 참조하면, 이진화기(1010) 부호화 단계에서 얻어진 각 구문 요소들을 이진화할 수 있다. 이 때, 상기 이진화 과정에 의해 각 구문 요소들은 빈 시퀀스로 변환될 수 있다. 확률 예측기(1020)는 이진화 과정에 의해 얻어진 빈들 각각에 대해, 발생 확률을 계산할 수 있다. 또한 확률 양자화기(1030)는 확률 구간을 나누어, 빈들 각각에 대한 LPB 확률 양자화를 수행할 수 있다. Referring to FIG. 10 , each syntax element obtained in the encoding step of the binarizer 1010 may be binarized. At this time, each syntax element may be converted into an empty sequence by the binarization process. The probability predictor 1020 may calculate an occurrence probability for each of the bins obtained through the binarization process. Also, the probability quantizer 1030 may perform LPB probability quantization for each bin by dividing the probability interval.

빈 시퀀스 계산기(1040)는, 비트스트림 파싱 과정에 대한 스케쥴링 정보를 도출할 수 있다. 도 4에서 상술한 바와 같이, 스케쥴링 정보는 부분 비트스트림 정보 및 우선순위 정보를 포함할 수 있으며, 스케쥴링을 위해 필요한 추가 정보가 존재하는 경우, 상기 추가 정보를 포함할 수도 있다. 여기서, 부분 비트스트림 정보는 대표 확률 단위 비트스트림이 부분 비트스트림으로 분할되는 지점에 관한 정보를 나타내고, 우선순위 정보는 각각의 대표 확률 비트스트림 및/또는 각각의 부분 비트스트림에 대한 파싱의 우선순위에 관한 정보를 나타낼 수 있다. The bin sequence calculator 1040 may derive scheduling information for a bitstream parsing process. As described above with reference to FIG. 4 , scheduling information may include partial bitstream information and priority information, and may include additional information necessary for scheduling if it exists. Here, the partial bitstream information indicates information about a point at which a representative probability unit bitstream is divided into partial bitstreams, and the priority information is a parsing priority for each representative probability bitstream and/or each partial bitstream. information about can be displayed.

상술한 바와 같이, 파싱 과정에서는 역이진화 우선순위가 높은 빈이 역이진화 우선순위가 낮은 빈보다 늦게 파싱될 수 있으며, 이 경우, 역이진화 과정에서 지연이 발생할 수 있다. 이 때, 빈 시퀀스 계산기(1040)에서 도출된 스케쥴링 정보가 엔트로피 복호화 과정에 사용됨으로써, 역이진화 과정에서 발생되는 지연이 최소화될 수 있다. 도출된 스케쥴링 정보를 비트스트림의 헤더에 추가 및/또는 포함시키기 위해, 빈 시퀀스 계산기(1040)는 상기 스케쥴링 정보를 비트스트림 결정기(1070)로 보낼 수 있다. 비트스트림 결정기(1070)는 상기 스케쥴링 정보를 비트스트림의 헤더에 추가할 수 있으며, 상기 비트스트림은 복호화기로 전송될 수 있다.As described above, in the parsing process, bins with a high debinarization priority may be parsed later than bins with a low debinarization priority, and in this case, a delay may occur in the debinarization process. At this time, the scheduling information derived from the bin sequence calculator 1040 is used in the entropy decoding process, so that the delay generated in the inverse binarization process can be minimized. In order to add and/or include the derived scheduling information in the header of the bitstream, the bin sequence calculator 1040 may send the scheduling information to the bitstream determiner 1070. The bitstream determiner 1070 may add the scheduling information to a header of a bitstream, and the bitstream may be transmitted to a decoder.

상술된 빈 시퀀스 계산기(1040)에 의해, 병렬 엔트로피 복호화기의 출력 속도가 향상될 수 있다. 따라서, 엔트로피 복호화 수행 과정이 고속화될 수 있다.The output speed of the parallel entropy decoder can be improved by the bin sequence calculator 1040 described above. Accordingly, the entropy decoding process can be speeded up.

도 10의 실시예에서, 상술된 구성을 제외한 나머지 구성의 동작은 도 6의 실시예에서와 동일하므로 생략한다.In the embodiment of FIG. 10 , operations of other components except for the above-described components are the same as those in the embodiment of FIG. 6 and thus are omitted.

도 11은 본 발명에 따른 병렬 엔트로피 복호화 장치의 또 다른 실시예를 개략적으로 나타내는 블록도이다.11 is a schematic block diagram of another embodiment of a parallel entropy decoding apparatus according to the present invention.

도 11의 실시예에 따른 엔트로피 복호화 장치는 비트스트림 결정기(1110), 빈(bin) 복호화기(1120), 버퍼(1130), 확률 양자화기(1140), 확률 예측기(1150) 및 역이진화기(1160)를 포함한다. 도 11의 실시예에 따른 병렬 엔트로피 복호화 장치는 병렬 엔트로피 복호화를 수행하기 위해, 복수의 빈(bin) 복호화기(930)를 포함할 수 있다. 도 11의 실시예에 따른 병렬 엔트로피 복호화 장치는 도 7의 실시예에 따른 병렬 엔트로피 복호화 장치와 유사하게 동작할 수 있다. The entropy decoding apparatus according to the embodiment of FIG. 11 includes a bitstream determiner 1110, a bin decoder 1120, a buffer 1130, a probability quantizer 1140, a probability predictor 1150, and an inverse binarizer ( 1160). The parallel entropy decoding apparatus according to the embodiment of FIG. 11 may include a plurality of bin decoders 930 to perform parallel entropy decoding. The parallel entropy decoding apparatus according to the embodiment of FIG. 11 may operate similarly to the parallel entropy decoding apparatus according to the embodiment of FIG. 7 .

비트스트림 결정기(1110)는 부호화기로부터 전송된 비트스트림의 헤더에 포함된, 헤더 정보를 복호화할 수 있다. 상기 헤더 정보는 예를 들어, 스케쥴링 정보(부분 비트스트림 정보, 우선순위 정보 및/또는 비트스트림 재정렬을 위해 필요한 추가 정보)를 포함할 수 있다. 비트스트림 결정기(1110)는 상기 스케쥴링 정보를 이용하여, 각 대표 확률 단위 비트스트림을 부분 비트스트림으로 분류하고, 빈 복호화기(1120)로 입력되는 비트스트림에 대한 스케쥴링을 수행할 수 있다. 이 때, 복호화기는 빈 복호화기의 개수를 고려하여, 복수의 빈 복호화기가 서로 비슷한 작업량을 가질 수 있도록, 각 빈 복호화기에 할당되는 비트스트림을 결정할 수 있다. The bitstream determiner 1110 may decode header information included in the header of the bitstream transmitted from the encoder. The header information may include, for example, scheduling information (partial bitstream information, priority information, and/or additional information required for bitstream rearrangement). The bitstream determiner 1110 may classify each representative probability unit bitstream into a partial bitstream using the scheduling information, and perform scheduling on a bitstream input to the bin decoder 1120. In this case, the decoder may determine a bitstream allocated to each bin decoder in consideration of the number of bin decoders so that the plurality of bin decoders may have a similar amount of work.

비트스트림 결정기(1110)는 부호화기로부터 전송된 스케쥴링 정보를 이용하여 비트스트림에 대한 스케쥴링을 수행함으로써, 역이진화 단계에서의 입력 지연을 최소화할 수 있다. The bitstream determiner 1110 can minimize input delay in the debinarization step by performing scheduling on the bitstream using the scheduling information transmitted from the encoder.

**

*도 11의 실시예에서, 상술된 구성을 제외한 나머지 구성의 동작은 도 7의 실시예에서와 동일하므로 생략한다.* In the embodiment of FIG. 11, operations of the other components except for the above-described components are the same as those in the embodiment of FIG. 7, so they are omitted.

도 12는 본 발명에 따른 병렬 엔트로피 부호화 방법의 일 실시예를 개략적으로 나타내는 흐름도이다.12 is a flowchart schematically illustrating an embodiment of a parallel entropy encoding method according to the present invention.

도 12를 참조하면, 부호화기는 구문 요소들을 정해진 이진화 방법을 이용하여 빈 시퀀스로 변환시킬 수 있다(S1210). 여기서, 빈 시퀀스는 0과 1의 조합으로 구성될 수 있으며, 각각의 0 또는 1은 빈(bin)이라 불릴 수 있다.Referring to FIG. 12, the encoder may convert syntax elements into an empty sequence using a predetermined binarization method (S1210). Here, the bin sequence may be composed of a combination of 0 and 1, and each 0 or 1 may be referred to as a bin.

부호화기는 이진화된 각각의 빈에 대한 LPB 확률을 결정할 수 있으며(S1220), 빈(bin)의 확률 구간을 양자화 간격에 따라 나눌 수 있다(S1230). The encoder may determine LPB probabilities for each of the binarized bins (S1220), and divide probability intervals of bins according to quantization intervals (S1230).

또한, 부호화기는, 복호화기의 역이진화 단계에서의 입력 지연을 최소화하기 위해, 스케쥴링 정보를 도출할 수 있다(S1240). 상술한 바와 같이, 상기 스케쥴링 정보는 부분 비트스트림 정보 및 우선순위 정보를 포함할 수 있으며, 스케쥴링을 위해 필요한 추가 정보가 존재하는 경우, 상기 추가 정보를 포함할 수도 있다. 도출된 스케쥴링 정보는 비트스트림의 헤더에 포함되어 복호화기로 전송될 수 있다.Also, the encoder may derive scheduling information in order to minimize an input delay in the decoder's inverse binarization step (S1240). As described above, the scheduling information may include partial bitstream information and priority information, and if there is additional information necessary for scheduling, it may also include the additional information. The derived scheduling information may be included in a header of a bitstream and transmitted to a decoder.

상술한 바와 같이, 빈(bin)의 확률 구간은 양자화 간격에 따라 나누어질 수 있으며, 나누어진 각각의 확률 구간들은 각각의 확률 구간에 대응되는 빈(bin) 부호화기에 할당될 수 있다. 부호화기는 각각의 빈에 대응되는 확률 구간에 따라, 양자화를 통해, 각각의 빈의 엔트로피 부호화에 사용되는 빈 부호화기를 결정할 수 있다(S1250).As described above, probability intervals of bins may be divided according to quantization intervals, and each divided probability interval may be allocated to a bin coder corresponding to each probability interval. The encoder may determine a bin coder used for entropy encoding of each bin through quantization according to a probability interval corresponding to each bin (S1250).

부호화기는, 빈 부호화기의 대표 LPB 확률 각각에 대해, 소정의 알고리즘에 의해 코드워드 길이 정보를 도출할 수 있다(S1260). 여기서, 상기 코드워드 길이 정보는 일례로 코드워드의 최소 길이 및 최대 길이에 관한 정보일 수 있다. 코드워드 길이 정보가 도출되면, 부호화기는 상기 도출된 코드워드 길이 정보를 이용하여 매핑 테이블을 결정할 수 있다. 여기서, 상기 매핑 테이블은 빈 시퀀스가 코드워드로 변환 및/또는 매핑되는 과정에 사용되는 테이블을 의미할 수 있다.The encoder may derive codeword length information for each representative LPB probability of an empty encoder by a predetermined algorithm (S1260). Here, the codeword length information may be, for example, information about a minimum length and a maximum length of a codeword. When codeword length information is derived, the encoder may determine a mapping table using the derived codeword length information. Here, the mapping table may refer to a table used in a process of converting and/or mapping empty sequences into codewords.

부호화기는 상기 결정된 매핑 테이블을 이용하여, 각각의 빈에 대한 빈(bin) 부호화를 수행할 수 있다(S1270). 부호화기는 빈 부호화를 수행함으로써 이진화된 빈들을 코드워드로 변환할 수 있다. 출력된 코드워드는 비트스트림에 포함되어, NAL 단위로 복호화기로 전송될 수 있다.The encoder may perform bin encoding on each bin using the determined mapping table (S1270). The encoder may convert binarized bins into codewords by performing bin encoding. The output codeword may be included in a bitstream and transmitted to a decoder in NAL units.

도 13은 본 발명에 따른 병렬 엔트로피 복호화 방법의 일 실시예를 개략적으로 나타내는 흐름도이다.13 is a flowchart schematically illustrating an embodiment of a parallel entropy decoding method according to the present invention.

도 13을 참조하면, 복호화기는 부호화기로부터 비트스트림을 수신할 수 있다(S1310). 수신된 비트스트림의 헤더는 헤더 정보를 포함할 수 있다. 여기서, 상기 헤더 정보에는 예를 들어, 코드워드 길이 정보, 매핑 테이블 선택 정보, 매핑 테이블 생성을 위해 추가되는 정보, 스케쥴링 정보 등이 있을 수 있다.Referring to FIG. 13, the decoder may receive a bitstream from the encoder (S1310). The header of the received bitstream may include header information. Here, the header information may include, for example, codeword length information, mapping table selection information, information added to create a mapping table, scheduling information, and the like.

복호화기는, 비트스트림의 헤더로부터 스케쥴링 정보를 도출할 수 있으며, 역이진화 단계에서의 입력 지연을 최소화하기 위해, 도출된 스케쥴링 정보를 이용하여, 비트스트림에 대한 스케쥴링을 수행할 수 있다(S1320). 여기서, 스케쥴링은 심볼의 구문 요소에 대한 역이진화 순서를 고려하여, 비트스트림을 재정렬하는 프로세스를 의미할 수 있다. 이 때, 복호화기는 빈 복호화기의 개수를 고려하여, 복수의 빈 복호화기가 서로 비슷한 작업량을 가질 수 있도록, 비트스트림을 빈 복호화기에 할당할 수 있다.The decoder may derive scheduling information from the header of the bitstream, and may perform scheduling on the bitstream using the derived scheduling information to minimize input delay in the debinarization step (S1320). Here, scheduling may refer to a process of rearranging a bitstream by considering an inverse binarization order of syntax elements of symbols. In this case, the decoder may allocate the bitstream to the bin decoders in consideration of the number of bin decoders so that the plurality of bin decoders may have similar workloads.

다시 도 13을 참조하면, 복호화기는 부호화기에서 전송된 비트스트림의 헤더로부터 코드워드 길이 정보를 도출할 수 있다(S1330). 여기서, 코드워드 길이 정보는, 각 빈(bin)복호화기의 대표 LPB 확률에 대응하는, 코드워드의 최소 길이 및 최대 길이에 대한 정보를 의미할 수 있다. 코드워드 길이 정보가 도출되면, 복호화기는 상기 도출된 코드워드 길이 정보를 이용하여 매핑 테이블을 결정할 수 있다.Referring back to FIG. 13, the decoder may derive codeword length information from the header of the bitstream transmitted from the encoder (S1330). Here, the codeword length information may mean information on the minimum and maximum lengths of codewords corresponding to representative LPB probabilities of each bin decoder. When codeword length information is derived, the decoder may determine a mapping table using the derived codeword length information.

복호화기는 상기 결정된 매핑 테이블을 이용하여, 각각의 빈에 대한 빈(bin) 복호화를 수행할 수 있다(S1340). 이 때, 복호화기에 포함된 복수의 빈 복호화기는, 각각 이에 할당된 확률 구간에 대응되는 빈을 복호화할 수 있다. 복호화기는 빈 복호화를 수행함으로써, 코드워드를 빈으로 변환할 수 있다. The decoder may perform bin decoding on each bin using the determined mapping table (S1340). At this time, the plurality of bin decoders included in the decoder may decode bins corresponding to probability intervals allocated thereto. The decoder may convert the codeword into bins by performing bin decoding.

복호화기는, 확률 양자화 단계를 거친 후, 빈(bin) 복호화기에서 출력된 각각의 빈에 대해, LPB 확률을 결정할 수 있다(S1350). 또한 복호화기는, 빈 복호화기에서 출력된 각각의 빈에 대해 역이진화를 수행하여, 의미 있는 구문 요소의 값을 도출할 수 있다(S1360).After going through a probability quantization step, the decoder may determine an LPB probability for each bin output from the bin decoder (S1350). Also, the decoder may derive a value of a meaningful syntax element by performing inverse binarization on each bin output from the bin decoder (S1360).

상술한 실시예들에서, 방법들은 일련의 단계 또는 블록으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.In the foregoing embodiments, the methods are described on the basis of a flowchart as a series of steps or blocks, but the present invention is not limited to the order of steps, and some steps may occur in a different order or concurrently with other steps as described above. can In addition, those skilled in the art will understand that the steps shown in the flow chart are not exclusive, that other steps may be included, or that one or more steps of the flow chart may be deleted without affecting the scope of the present invention. You will understand.

상술한 실시예는 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합을 기술할 수는 없지만, 해당 기술 분야의 통상의 지식을 가진 자는 다른 조합이 가능함을 인식할 수 있을 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.The foregoing embodiment includes examples of various aspects. It is not possible to describe all possible combinations to represent the various aspects, but those skilled in the art will recognize that other combinations are possible. Accordingly, it is intended that the present invention cover all other substitutions, modifications and variations falling within the scope of the following claims.

Claims (3)

비트스트림으로부터, 복수의 부분 비트스트림의 분할 지점에 관한 부분 비트스트림 정보를 복호화하는 단계;
상기 복수의 부분 비트스트림에 대한 부호화 순서를 나타내는 부호화 순서 정보를 획득하는 단계;
상기 부호화 순서 정보에 따라, 상기 복수의 부분 비트스트림을 복호화하는 단계; 및
상기 복호화된 부분 비트스트림을 기반으로 영상을 복원하는 단계를 포함하고,
상기 비트스트림은 헤더 영역과 데이터 영역으로 구분되고,
상기 헤더 영역은 상기 부분 비트스트림 정보를 포함하고,
상기 비트스트림의 상기 데이터 영역은 상기 복수의 부분 비트스트림을 포함하고, 상기 복수의 부분 비트스트림 각각의 종료 지점은 상기 복수의 부분 비트스트림 각각의 부분 비트스트림 정보에 기초하여 결정되고,
현재 부분 비트스트림의 복호화를 위하여, 이전 부분 비트스트림의 부분 비트스트림 정보로부터 결정된 상기 이전 부분 비트스트림의 종료 지점과 상기 현재 부분 비트스트림의 부분 비트스트림 정보로부터 결정된 상기 현재 부분 비트스트림의 종료 지점 사이의 비트열이 파싱되고,
상기 비트열이 파싱됨으로써, 양자화된 변환계수가 생성되고,
상기 양자화된 변환계수를 역양자화 및 역변환함으로써, 잔차 블록이 생성되고,
상기 잔차 블록에 따라, 상기 영상이 복원되는 것을 특징으로 하는 영상 복호화 방법.
decoding partial bitstream information about a splitting point of a plurality of partial bitstreams from the bitstream;
obtaining encoding order information indicating an encoding order of the plurality of partial bitstreams;
decoding the plurality of partial bitstreams according to the encoding order information; and
Reconstructing an image based on the decoded partial bitstream;
The bitstream is divided into a header area and a data area,
The header area includes the partial bitstream information,
The data area of the bitstream includes the plurality of partial bitstreams, and an end point of each of the plurality of partial bitstreams is determined based on partial bitstream information of each of the plurality of partial bitstreams;
For decoding of the current partial bitstream, between an end point of the previous partial bitstream determined from partial bitstream information of the previous partial bitstream and an end point of the current partial bitstream determined from partial bitstream information of the current partial bitstream The bit string of is parsed,
By parsing the bit string, quantized transform coefficients are generated,
By inverse quantizing and inverse transforming the quantized transform coefficient, a residual block is generated,
The image decoding method characterized in that the image is reconstructed according to the residual block.
영상을 부호화하여 구문 요소를 획득하는 단계;
복수의 부분 비트스트림의 분할 지점에 관한 부분 비트스트림 정보를 결정하는 단계;
상기 복수의 부분 비트스트림에 대한 부호화 순서를 나타내는 부호화 순서 정보를 결정하는 단계; 및
상기 구문 요소, 상기 부분 비트스트림 정보, 및 상기 부호화 순서 정보를 부호화하여 비트스트림을 생성하는 단계를 포함하고,
상기 비트스트림은 헤더 영역과 데이터 영역으로 구분되고,
상기 헤더 영역은 상기 부분 비트스트림 정보를 포함하고,
상기 비트스트림의 상기 데이터 영역은 상기 복수의 부분 비트스트림 각각의 종료 지점을 결정하는데 상기 복수의 부분 비트스트림 각각의 부분 비트스트림 정보가 이용되고,
현재 부분 비트스트림의 부분 비트스트림 정보는 이전 부분 비트스트림의 종료 지점과 상기 현재 부분 비트스트림의 종료 지점에 따른 상기 현재 부분 비트스트림의 비트열을 나타내고,
상기 비트열의 생성을 위하여, 영상의 소정 블록에 대한 잔차 블록이 생성되고,
상기 잔차 블록의 변환 및 양자화에 따라, 상기 영상이 부호화되는 것을 특징으로 하는 것을 특징으로 하는 영상 부호화 방법.
encoding an image to obtain syntax elements;
determining partial bitstream information about a splitting point of a plurality of partial bitstreams;
Determining encoding order information indicating an encoding order of the plurality of partial bitstreams; and
Encoding the syntax element, the partial bitstream information, and the encoding order information to generate a bitstream;
The bitstream is divided into a header area and a data area,
The header area includes the partial bitstream information,
In the data area of the bitstream, partial bitstream information of each of the plurality of partial bitstreams is used to determine an end point of each of the plurality of partial bitstreams;
the partial bitstream information of the current partial bitstream indicates a bit stream of the current partial bitstream according to an end point of a previous partial bitstream and an end point of the current partial bitstream;
To generate the bit string, a residual block for a predetermined block of an image is generated,
The image encoding method characterized in that the image is encoded according to the transformation and quantization of the residual block.
영상 복호화 장치에 수신되고 영상에 포함된 현재 블록을 복원하는데 이용되는 비트스트림을 저장한 컴퓨터 판독가능한 기록매체로서,
상기 비트스트림은 구문 요소, 부분 비트스트림 정보, 및 부호화 순서 정보를 포함하고,
상기 비트스트림은 헤더 영역과 데이터 영역으로 구분되고,
상기 헤더 영역은 상기 부분 비트스트림 정보를 포함하고,
상기 비트스트림의 상기 데이터 영역은 복수의 부분 비트스트림을 포함하고,
상기 복수의 부분 비트스트림 각각의 부분 비트스트림 정보는 상기 비트스트림에서 상기 복수의 부분 비트스트림 각각의 종료 지점을 결정하는데 이용되는 것을 특징으로 하고,
상기 부호화 순서 정보는 상기 복수의 부분 비트스트림에 대한 부호화 순서를 나타내는 것을 특징으로 하고,
현재 부분 비트스트림의 부분 비트스트림 정보는 이전 부분 비트스트림의 종료 지점과 상기 현재 부분 비트스트림의 종료 지점에 따른 상기 현재 부분 비트스트림의 비트열을 나타내고,
상기 비트열의 생성을 위하여, 영상의 소정 블록에 대한 잔차 블록이 생성되고,
상기 잔차 블록의 변환 및 양자화에 따라, 상기 영상이 부호화되는 것을 특징으로 하는 비트스트림을 저장한 컴퓨터 판독가능한 기록매체.
A computer-readable recording medium storing a bitstream received by an image decoding apparatus and used to restore a current block included in an image,
The bitstream includes syntax elements, partial bitstream information, and encoding order information;
The bitstream is divided into a header area and a data area,
The header area includes the partial bitstream information,
The data area of the bitstream includes a plurality of partial bitstreams;
Characterized in that the partial bitstream information of each of the plurality of partial bitstreams is used to determine an end point of each of the plurality of partial bitstreams in the bitstream,
Characterized in that the encoding order information indicates an encoding order for the plurality of partial bitstreams,
the partial bitstream information of the current partial bitstream indicates a bit stream of the current partial bitstream according to an end point of a previous partial bitstream and an end point of the current partial bitstream;
To generate the bit string, a residual block for a predetermined block of an image is generated,
A computer-readable recording medium storing a bitstream, characterized in that the image is encoded according to the transformation and quantization of the residual block.
KR1020220121783A 2011-02-21 2022-09-26 Method and apparatus for parallel entropy encoding/decoding Active KR102486026B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020110015230 2011-02-21
KR20110015230 2011-02-21
KR1020220017729A KR102449190B1 (en) 2011-02-21 2022-02-10 Method and apparatus for parallel entropy encoding/decoding

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020220017729A Division KR102449190B1 (en) 2011-02-21 2022-02-10 Method and apparatus for parallel entropy encoding/decoding

Publications (2)

Publication Number Publication Date
KR20220136969A KR20220136969A (en) 2022-10-11
KR102486026B1 true KR102486026B1 (en) 2023-01-10

Family

ID=46886155

Family Applications (13)

Application Number Title Priority Date Filing Date
KR1020120017485A Active KR101726274B1 (en) 2011-02-21 2012-02-21 Method and apparatus for parallel entropy encoding/decoding
KR1020150111745A Active KR101726276B1 (en) 2011-02-21 2015-08-07 Method and apparatus for parallel entropy encoding/decoding
KR1020170021581A Active KR101797055B1 (en) 2011-02-21 2017-02-17 Method and apparatus for parallel entropy encoding/decoding
KR1020170147209A Active KR101894407B1 (en) 2011-02-21 2017-11-07 Method and apparatus for parallel entropy encoding/decoding
KR1020180100448A Active KR101975254B1 (en) 2011-02-21 2018-08-27 Method and apparatus for parallel entropy encoding/decoding
KR1020190049550A Active KR102071667B1 (en) 2011-02-21 2019-04-29 Method and apparatus for parallel entropy encoding/decoding
KR1020190049549A Active KR102071666B1 (en) 2011-02-21 2019-04-29 Method and apparatus for parallel entropy encoding/decoding
KR1020190049548A Active KR102071665B1 (en) 2011-02-21 2019-04-29 Method and apparatus for parallel entropy encoding/decoding
KR1020200008841A Active KR102171380B1 (en) 2011-02-21 2020-01-22 Method and apparatus for parallel entropy encoding/decoding
KR1020200137812A Active KR102275730B1 (en) 2011-02-21 2020-10-22 Method and apparatus for parallel entropy encoding/decoding
KR1020210087950A Active KR102363426B1 (en) 2011-02-21 2021-07-05 Method and apparatus for parallel entropy encoding/decoding
KR1020220017729A Active KR102449190B1 (en) 2011-02-21 2022-02-10 Method and apparatus for parallel entropy encoding/decoding
KR1020220121783A Active KR102486026B1 (en) 2011-02-21 2022-09-26 Method and apparatus for parallel entropy encoding/decoding

Family Applications Before (12)

Application Number Title Priority Date Filing Date
KR1020120017485A Active KR101726274B1 (en) 2011-02-21 2012-02-21 Method and apparatus for parallel entropy encoding/decoding
KR1020150111745A Active KR101726276B1 (en) 2011-02-21 2015-08-07 Method and apparatus for parallel entropy encoding/decoding
KR1020170021581A Active KR101797055B1 (en) 2011-02-21 2017-02-17 Method and apparatus for parallel entropy encoding/decoding
KR1020170147209A Active KR101894407B1 (en) 2011-02-21 2017-11-07 Method and apparatus for parallel entropy encoding/decoding
KR1020180100448A Active KR101975254B1 (en) 2011-02-21 2018-08-27 Method and apparatus for parallel entropy encoding/decoding
KR1020190049550A Active KR102071667B1 (en) 2011-02-21 2019-04-29 Method and apparatus for parallel entropy encoding/decoding
KR1020190049549A Active KR102071666B1 (en) 2011-02-21 2019-04-29 Method and apparatus for parallel entropy encoding/decoding
KR1020190049548A Active KR102071665B1 (en) 2011-02-21 2019-04-29 Method and apparatus for parallel entropy encoding/decoding
KR1020200008841A Active KR102171380B1 (en) 2011-02-21 2020-01-22 Method and apparatus for parallel entropy encoding/decoding
KR1020200137812A Active KR102275730B1 (en) 2011-02-21 2020-10-22 Method and apparatus for parallel entropy encoding/decoding
KR1020210087950A Active KR102363426B1 (en) 2011-02-21 2021-07-05 Method and apparatus for parallel entropy encoding/decoding
KR1020220017729A Active KR102449190B1 (en) 2011-02-21 2022-02-10 Method and apparatus for parallel entropy encoding/decoding

Country Status (1)

Country Link
KR (13) KR101726274B1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101726274B1 (en) * 2011-02-21 2017-04-18 한국전자통신연구원 Method and apparatus for parallel entropy encoding/decoding
WO2018194190A1 (en) * 2017-04-18 2018-10-25 엘지전자(주) Methods and devices for entropy encoding and decoding of video signal
WO2018207956A1 (en) * 2017-05-10 2018-11-15 엘지전자(주) Method and device for entropy-encoding and entropy-decoding video signal
US10687062B1 (en) * 2019-02-22 2020-06-16 Google Llc Compression across multiple images
KR102586709B1 (en) * 2019-04-10 2023-10-11 한국전자통신연구원 Transmitting apparatus, receiveing apparatus and method for protecting video
WO2020246805A1 (en) 2019-06-03 2020-12-10 엘지전자 주식회사 Matrix-based intra prediction device and method
CN111818335B (en) * 2020-07-03 2022-04-26 Tcl华星光电技术有限公司 Entropy coding method and device and electronic equipment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100201918B1 (en) 1994-02-23 1999-06-15 이토가 미찌야 Binarization Apparatus and Method for Compression of Color Image and Bitwise Coding of M Alphabet for It
JP2009518917A (en) 2005-12-07 2009-05-07 イマジネイション テクノロジーズ リミテッド Data decoding
KR101726276B1 (en) 2011-02-21 2017-04-17 한국전자통신연구원 Method and apparatus for parallel entropy encoding/decoding

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3230933B2 (en) * 1994-08-19 2001-11-19 株式会社リコー Data decompression device, data decompression method, decoding device, decoding method, encoding device, and entropy decoder
US5818463A (en) * 1997-02-13 1998-10-06 Rockwell Science Center, Inc. Data compression for animated three dimensional objects
JP2008042497A (en) * 2006-08-04 2008-02-21 Seiko Epson Corp Decoding device, information reproducing device, and electronic device
KR101590633B1 (en) * 2008-11-11 2016-02-02 삼성전자주식회사 / /apparatus for processing video encoding and decoding using video separation based on slice level and method therefor
KR101038531B1 (en) * 2009-06-25 2011-06-02 한양대학교 산학협력단 Image coding apparatus and method capable of parallel processing at decoding, and Image decoding apparatus and method capable of parallel processing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100201918B1 (en) 1994-02-23 1999-06-15 이토가 미찌야 Binarization Apparatus and Method for Compression of Color Image and Bitwise Coding of M Alphabet for It
JP2009518917A (en) 2005-12-07 2009-05-07 イマジネイション テクノロジーズ リミテッド Data decoding
KR101726276B1 (en) 2011-02-21 2017-04-17 한국전자통신연구원 Method and apparatus for parallel entropy encoding/decoding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
유은경, 남정학, 박시내, 심동규, ‘적응적 V2V 엔트로피 부호화 방법’, 한국방송공학회 학술발표대회 논문집, 2011.07., 585-588.

Also Published As

Publication number Publication date
KR20190047673A (en) 2019-05-08
KR102363426B1 (en) 2022-02-16
KR102275730B1 (en) 2021-07-12
KR20150099489A (en) 2015-08-31
KR101797055B1 (en) 2017-11-16
KR20120095815A (en) 2012-08-29
KR20210088479A (en) 2021-07-14
KR101975254B1 (en) 2019-05-08
KR20200012004A (en) 2020-02-04
KR20220026550A (en) 2022-03-04
KR101894407B1 (en) 2018-09-05
KR101726274B1 (en) 2017-04-18
KR102449190B1 (en) 2022-09-30
KR102071665B1 (en) 2020-01-31
KR20190047674A (en) 2019-05-08
KR102171380B1 (en) 2020-10-29
KR20170021814A (en) 2017-02-28
KR102071666B1 (en) 2020-01-31
KR101726276B1 (en) 2017-04-17
KR20200126352A (en) 2020-11-06
KR20190047672A (en) 2019-05-08
KR20180095777A (en) 2018-08-28
KR102071667B1 (en) 2020-01-31
KR20220136969A (en) 2022-10-11
KR20180099596A (en) 2018-09-05

Similar Documents

Publication Publication Date Title
KR102486026B1 (en) Method and apparatus for parallel entropy encoding/decoding
KR101867884B1 (en) Method for encoding/decoding an intra prediction mode and apparatus for the same
WO2012173315A1 (en) Method and apparatus for encoding/decoding video in intra prediction mode
KR102548881B1 (en) Methods and apparatus for video transform encoding/decoding
KR20220116109A (en) Entrpy decoding method and apparatus for transform skip information
US20130223528A1 (en) Method and apparatus for parallel entropy encoding/decoding
US20130322535A1 (en) Method for encoding and decoding images using plurality of reference images and device using method
WO2012067412A2 (en) Method and apparatus for parallel entropy encoding/decoding
KR20120100839A (en) Entropy encoding/decoding method

Legal Events

Date Code Title Description
A107 Divisional application of patent
PA0107 Divisional application

Comment text: Divisional Application of Patent

Patent event date: 20220926

Patent event code: PA01071R01D

Filing date: 20220210

Application number text: 1020220017729

PA0201 Request for examination
PG1501 Laying open of application
E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20221012

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20230103

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20230103

End annual number: 3

Start annual number: 1

PG1601 Publication of registration