KR102268017B1 - A method of cabac decoding based on an application specific processor and an apparatus therefor - Google Patents

A method of cabac decoding based on an application specific processor and an apparatus therefor Download PDF

Info

Publication number
KR102268017B1
KR102268017B1 KR1020170173992A KR20170173992A KR102268017B1 KR 102268017 B1 KR102268017 B1 KR 102268017B1 KR 1020170173992 A KR1020170173992 A KR 1020170173992A KR 20170173992 A KR20170173992 A KR 20170173992A KR 102268017 B1 KR102268017 B1 KR 102268017B1
Authority
KR
South Korea
Prior art keywords
context index
video signal
index value
decoding
application
Prior art date
Application number
KR1020170173992A
Other languages
Korean (ko)
Other versions
KR20190072873A (en
Inventor
이성원
최승현
Original Assignee
광운대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 광운대학교 산학협력단 filed Critical 광운대학교 산학협력단
Priority to KR1020170173992A priority Critical patent/KR102268017B1/en
Publication of KR20190072873A publication Critical patent/KR20190072873A/en
Application granted granted Critical
Publication of KR102268017B1 publication Critical patent/KR102268017B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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

Landscapes

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

Abstract

본 발명은 어플리케이션 특정 명령어 프로세서에 기반한 CABAC 디코딩 방법 및 이의 장치에 관한 것이다. 본 발명의 일실시예에 따르면, 어플리케이션 특정 명령어 프로세서를 이용하여 CABAC 디코딩을 수행하는 방법에 있어서, 영상 신호를 수신하는 단계; 상기 영상 신호의 타입 정보를 수신하는 단계; 상기 타입 정보에 따라 문맥 인덱스 값 및 상기 영상 신호 중 적어도 하나 이상에 기초하여 업데이트된 문맥 인덱스 값과 디코딩 비트 중 적어도 하나 이상을 출력하는 단계를 포함한다.The present invention relates to a CABAC decoding method and apparatus based on an application specific instruction processor. According to an embodiment of the present invention, there is provided a method for performing CABAC decoding using an application-specific instruction processor, the method comprising: receiving an image signal; receiving type information of the video signal; and outputting at least one of a context index value and a decoding bit updated based on at least one of a context index value and the video signal according to the type information.

Description

어플리케이션 특정 명령어 프로세서에 기반한 CABAC 디코딩 방법 및 이의 장치{A METHOD OF CABAC DECODING BASED ON AN APPLICATION SPECIFIC PROCESSOR AND AN APPARATUS THEREFOR}A METHOD OF CABAC DECODING BASED ON AN APPLICATION SPECIFIC PROCESSOR AND AN APPARATUS THEREFOR

본 발명은 CABAC 디코딩 방법 및 이의 장치에 관한 것으로서, 더욱 상세하게는, 어플리케이션 특정 명령어 프로세서에 기반한 CABAC 디코딩 방법 및 이의 장치에 관한 것이다.The present invention relates to a CABAC decoding method and an apparatus thereof, and more particularly, to a CABAC decoding method based on an application-specific instruction processor and an apparatus thereof.

다양한 멀티미디어 장치의 확산으로 인하여, 멀티미디어 장치를 위한 영상 표준은 영상 압축률을 증가시키기 위한 다양한 영상 압축 알고리즘을 채택하고 있다. 상기 다양한 영상 압축 알고리즘은 적은 용량과 높은 화질의 영상을 제공할 수 있다. 그러나, CAVLC 및 CABAC와 같은 최근의 엔트로피 코딩은 현재 심볼이 이전 심볼에 의하여 결정되기 때문에 병렬적인 처리를 수행할 수 없다. 그러므로, 다른 연산 처리가 수행되는 동일 플랫폼 상에서 엔트로피 코딩 처리가 향상될 수 있는 다양한 연구가 계속되어 왔다.Due to the proliferation of various multimedia devices, video standards for multimedia devices adopt various video compression algorithms to increase video compression rates. The various image compression algorithms can provide images with a small capacity and high quality. However, recent entropy coding such as CAVLC and CABAC cannot perform parallel processing because the current symbol is determined by the previous symbol. Therefore, various studies have been conducted in which entropy coding processing can be improved on the same platform on which other computational processing is performed.

다양한 연구 방법들 중 어플리케이션 특정 명령어 프로세서 실행 방법은 특정 연산 또는 처리를 수행하기 위한 하드웨어 및 그것과 관련된 명령어를 추가함으로써 엔트로피 코딩을 수행시키기 위하여 이용된다. 상기 어플리케이션 특정 명령어 프로세서 실행 방법은 추가되는 하드웨어 코스트를 최소화함과 동시에 커스텀 하드웨어 실행에 가까운 빠른 처리 속도를 보여준다. 이러한 어플리케이션 특정 명령어 프로세서 실행 방법은 다양한 멀티미디어 표준에서 이용될 수 있는 유연성을 갖는데, 이러한 표준들은 새롭게 추가되는 명령들과 함께 프로그램으로서 구현되기 때문이다. 그러나, 현재 존재하는 프로세서의 명령에는 영향을 미치지 않고 최소한의 하드웨어 코스트를 인지하기 위하여 새로운 명령어는 원자적인 레벨에서 동작이 수행되고, 세밀하게 디자인되며 정확해야 한다.Among various research methods, the application-specific instruction processor execution method is used to perform entropy coding by adding hardware for performing a specific operation or processing and instructions related thereto. The application-specific instruction processor execution method minimizes additional hardware cost and at the same time exhibits a high processing speed close to that of custom hardware execution. This application-specific instruction processor execution method has the flexibility to be used in various multimedia standards, since these standards are implemented as a program together with newly added instructions. However, in order to recognize the minimum hardware cost without affecting the instructions of the currently existing processor, the operation of the new instructions is performed at an atomic level, and the instructions must be precisely designed and accurate.

비트스트림 프로세서(BSP)는 어플리케이션 특정 명령어 프로세서를 이용하여 쉽게 가변 길이 코딩(VLC)를 처리할 수 있는 프로세서 중 하나이다. 이러한 비트스트림의 빠른 속도의 처리를 위한 명령어는 룩-업 테이블에 기초하며, 어셈블리 코드를 변경함으로써 서포트될 수 있는 다양한 영상 표준의 적응적인 코딩 및 빠른 처리가 가능하다. 그러나, 최근 영상 표준에서 이용되는 산술 코딩인 CABAC은 산술 코딩과 가변 길이 코딩의 혼합 형태이므로 룩-업 테이블을 수행할 수 없으므로, 현재 이용되는 비트스트림 프로세서를 이용하여 처리될 수 없다.A bitstream processor (BSP) is one of the processors that can easily handle variable length coding (VLC) using an application specific instruction processor. The instructions for high-speed processing of the bitstream are based on the look-up table, and by changing the assembly code, adaptive coding and fast processing of various image standards that can be supported are possible. However, CABAC, which is an arithmetic coding used in a recent video standard, is a mixture of arithmetic coding and variable length coding, and thus cannot perform a look-up table, and thus cannot be processed using a currently used bitstream processor.

본 발명이 이루고자 하는 기술적 과제는, 병렬적으로 문맥 적응적 가변 길이 코딩을 수행하기 위한 어플리케이션 특정 명령어 프로세서에 기반한 CABAC 디코딩 방법을 제공하는 것이다. An object of the present invention is to provide a CABAC decoding method based on an application-specific instruction processor for performing context-adaptive variable-length coding in parallel.

또한, 본 발명이 이루고자 하는 다른 기술적 과제는, 추가되는 하드웨어 코스트를 최소화하며 빠른 처리 속도를 제공할 수 있는 어플리케이션 특정 명령어 프로세서에 기반한 CABAC 디코딩 장치를 제공하는 것이다. In addition, another technical problem to be achieved by the present invention is to provide a CABAC decoding apparatus based on an application-specific instruction processor capable of providing a fast processing speed while minimizing an additional hardware cost.

본 발명의 일실시예에 따르면, 어플리케이션 특정 명령어 프로세서를 이용하여 CABAC 디코딩을 수행하는 방법에 있어서, 영상 신호를 수신하는 단계; 상기 영상 신호의 타입 정보를 수신하는 단계; 상기 타입 정보에 따라 문맥 인덱스 값 및 상기 영상 신호 중 적어도 하나 이상에 기초하여 업데이트된 문맥 인덱스 값과 디코딩 비트 중 적어도 하나 이상을 출력하는 단계를 포함할 수 있다. According to an embodiment of the present invention, there is provided a method for performing CABAC decoding using an application-specific instruction processor, the method comprising: receiving an image signal; receiving type information of the video signal; The method may include outputting at least one of a context index value and a decoding bit updated based on at least one of a context index value and the video signal according to the type information.

상기 업데이트된 문맥 인덱스 값과 디코딩 비트 중 적어도 하나 이상을 출력하는 단계는 상기 영상 신호를 수신함과 동시에 수행될 수 있으며, 상기 타입 정보는 상기 문맥 인덱스 값을 업데이트하는 레귤러 모드 정보 및 상기 문맥 인덱스 값의 업데이트는 수행되지 아니하는 바이패스 모드 정보를 포함할 수 있다.The outputting of at least one of the updated context index value and the decoding bit may be performed simultaneously with receiving the video signal, and the type information includes regular mode information for updating the context index value and the context index value. The update may include bypass mode information that is not performed.

일 실시예에서, 상기 타입 정보가 레귤러 모드 정보인 경우, 상기 업데이트된 문맥 인덱스 값과 디코딩 비트 중 적어도 하나 이상을 출력하는 단계는, 상기 현재 상태의 문맥 인덱스 값이 레지스터에 저장되어 있는지 확인하는 단계; 상기 현재 상태의 문맥 인덱스 값이 저장된 경우, 상기 저장된 문맥 인덱스 값을 이용하여 상태 변환 테이블 및 상기 문맥 인덱스 값에 대응하는 범위 테이블을 연산하는 단계; 상기 영상 신호, 상기 상태 변환 테이블 및 상기 범위 테이블을 이용하여 산술 코딩을 수행하는 단계; 상기 산술 코딩시 계산된 상기 업데이트된 문맥 인덱스 값과 상기 디코딩 비트를 출력하는 단계; 및 상기 영상 신호를 나타내는 로케이션 정보는 다음 영상 신호를 나타내도록 조절되는 단계를 포함할 수 있다.In an embodiment, when the type information is regular mode information, outputting at least one of the updated context index value and the decoding bit includes: checking whether the context index value of the current state is stored in a register ; when the context index value of the current state is stored, calculating a state conversion table and a range table corresponding to the context index value using the stored context index value; performing arithmetic coding using the video signal, the state conversion table, and the range table; outputting the updated context index value calculated during the arithmetic coding and the decoding bit; and adjusting the location information representing the video signal to represent the next video signal.

또한, 상기 타입 정보가 바이패스 모드 정보인 경우, 상기 업데이트된 문맥 인덱스 값과 디코딩 비트 중 적어도 하나 이상을 출력하는 단계는, 상기 영상 신호 및 고정된 확률값을 이용하여 산술 코딩을 수행하는 단계; 상기 산술 코딩시 계산된 디코딩 비트 값을 출력하는 단계; 및 상기 영상 신호를 나타내는 로케이션 정보는 다음 영상 신호를 나타내도록 조절되는 단계를 포함할 수 있다.In addition, when the type information is bypass mode information, outputting at least one of the updated context index value and the decoding bit may include: performing arithmetic coding using the video signal and a fixed probability value; outputting a decoded bit value calculated during the arithmetic coding; and adjusting the location information representing the video signal to represent the next video signal.

본 발명의 또 다른 실시예에 따르면, 어플리케이션 특정 명령어 프로세서를 이용하여 CABAC 디코딩을 수행하는 장치에 있어서, 상기 어플리케이션 특정 명령어를 저장하는 메모리; 및 영상 신호를 문맥 적응적으로 이진 산술 코딩하기 위하여 상기 영상 신호의 타입 정보에 기초하여 문맥 인덱스 및 디코딩 비트 중 적어도 하나 이상을 생성하고, 상기 생성된 문맥 인덱스 및 디코딩 비트 중 적어도 하나 이상을 이용하여 상기 영상 신호를 코딩하는 신택스 프로세서를 포함할 수 있다.According to another embodiment of the present invention, there is provided an apparatus for performing CABAC decoding using an application-specific instruction processor, comprising: a memory for storing the application-specific instruction; and generating at least one of a context index and a decoding bit based on the type information of the video signal in order to context-adaptively perform binary arithmetic coding of the video signal, and using at least one or more of the generated context index and decoding bit It may include a syntax processor for coding the image signal.

일 실시예에서, 상기 신택스 프로세서는, 상기 영상 신호에 대하여 가변 길이 코딩을 수행하는 VLC 엔진; 상기 영상 신호에 대하여 이진 산술 코딩을 수행하는 BAC 엔진; 상기 영상 신호에 대하여 런 길이 코딩을 수행하는 RLC 엔진; 및 상기 VLC 엔진, 상기 BAC 엔진, 및 상기 RLC 엔진의 코딩 수행여부 및 상기 코딩에 관련된 명령을 제어하는 마이크로프로세서 코어부를 포함할 수 있다.In an embodiment, the syntax processor includes: a VLC engine for performing variable length coding on the video signal; a BAC engine for performing binary arithmetic coding on the video signal; an RLC engine that performs run-length coding on the video signal; and a microprocessor core for controlling whether to perform coding of the VLC engine, the BAC engine, and the RLC engine and a command related to the coding.

상기 BAC 엔진은, 상기 타입 정보에 기초하여 명령을 수행하는 마이크로프로세서 코어부; 상기 마이크로프로세서 코어부로부터 상기 타입 정보 및 현재 상태의 문맥 인덱스 값을 수신하고, 상기 문맥 인덱스 값이 업데이트 되는 경우, 업데이트된 문맥 인덱스 값을 수신하며, 상기 영상 신호를 위한 디코딩 비트 값을 출력하는 BAC 제어부; 및 상기 문맥 인덱스 값을 이용하여 상태 변환 테이블 및 상기 문맥 인덱스 값에 대응하는 범위 테이블을 연산하고, 상기 영상 신호, 상기 상태 변환 테이블, 및 상기 범위 테이블을 이용하여 산술 코딩을 수행하며, 상기 산술 코딩시 계산된 상기 업데이트된 문맥 인덱스 값과 상기 디코딩 비트 중 적어도 하나 이상을 출력하는 BAC 엔진 코어부를 포함할 수 있다.The BAC engine may include a microprocessor core unit configured to perform a command based on the type information; BAC for receiving the type information and the context index value of the current state from the microprocessor core unit, receiving the updated context index value when the context index value is updated, and outputting a decoding bit value for the video signal control unit; and calculating a state conversion table and a range table corresponding to the context index value using the context index value, performing arithmetic coding using the video signal, the state conversion table, and the range table, and the arithmetic coding It may include a BAC engine core for outputting at least one of the updated context index value calculated at the time and the decoding bit.

상기 타입 정보가 레귤러 모드 정보인 경우, 상기 BAC 제어부는 상기 업데이트된 문맥 인덱스 값과 상기 디코딩 비트값을 상기 마이크로프로세서 코어부로 출력하고, 상기 BAC 엔진 코어부는 상기 업데이트된 문맥 인덱스 값과 상기 디코딩 비트값을 모두를 상기 BAC 제어부로 출력할 수 있다.When the type information is regular mode information, the BAC control unit outputs the updated context index value and the decoding bit value to the microprocessor core unit, and the BAC engine core unit outputs the updated context index value and the decoding bit value. can be output to the BAC control unit.

또한, 상기 타입 정보가 바이패스 모드 정보인 경우, 상기 BAC 제어부는 상기 디코딩 비트값을 상기 마이크로프로세서 코어부로 출력하고, 상기 BAC 엔진 코어부는 고정된 확률값 및 상기 영상 신호를 이용하여 상기 디코딩 비트값을 상기 BAC 제어부로 출력할 수 있다.In addition, when the type information is bypass mode information, the BAC control unit outputs the decoding bit value to the microprocessor core unit, and the BAC engine core unit determines the decoding bit value using a fixed probability value and the image signal. output to the BAC control unit.

일 실시예에서는, 상기 상태 변환 데이터 및 상기 범위 테이블 데이터를 저장하는 메모리; 및 상기 업데이트된 문맥 인덱스 값, 상기 디코딩 비트 값, 및 상기 영상 신호를 저장하는 레지스터를 더 포함할 수 있다.In one embodiment, the memory for storing the state conversion data and the range table data; and a register storing the updated context index value, the decoding bit value, and the video signal.

상기 BAC 엔진 코어부는 업데이트된 문맥 인덱스 값과 디코딩 비트 중 적어도 하나 이상을 출력함과 동시에 상기 영상 신호를 수신할 수 있다.The BAC engine core may receive the video signal while outputting at least one of an updated context index value and a decoding bit.

본 발명의 실시예에 따르면, 타입 정보에 따라 업데이트된 문맥 인덱스 값 및 디코딩 비트 중 적어도 하나 이상을 생성하는 어플리케이션 특정 명령어 프로세서에 기반한 이진화 산술 코딩(BAC) 엔진을 포함함으로써, 병렬적으로 문맥 적응적 가변 길이 코딩을 수행 가능한 어플리케이션 특정 명령어 프로세서에 기반한 CABAC 디코딩 방법을 제공할 수 있다.According to an embodiment of the present invention, by including a binary arithmetic coding (BAC) engine based on an application-specific instruction processor that generates at least one or more of an updated context index value and a decoding bit according to type information, the context adaptive in parallel It is possible to provide a CABAC decoding method based on an application-specific instruction processor capable of performing variable length coding.

또한, 본 발명의 다른 실시예에 따르면, 병렬 처리 및 룩업 테이블을 이용할 수 있는 어플리케이션 특정 명령어 프로세서(ASIP)에 이진화 산술 코딩 엔진을 포함함으로써, 추가되는 하드웨어 코스트를 최소화하며 빠른 처리 속도를 제공할 수 있는 어플리케이션 특정 명령어 프로세서에 기반한 CABAC 디코딩 장치를 제공할 수 있다.In addition, according to another embodiment of the present invention, by including a binary arithmetic coding engine in an application-specific instruction processor (ASIP) capable of using parallel processing and lookup tables, it is possible to provide fast processing speed while minimizing additional hardware costs. It is possible to provide a CABAC decoding device based on an application-specific instruction processor.

도 1은 일반적인 CABAC 디코딩 장치를 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 어플리케이션 특정 명령어 프로세서(ASIP)를 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 이진 산술 코딩 엔진부를 나타내는 블록도이다.
도 4는 본 발명의 일 실시예에 따른 CABAC 디코딩 방법을 설명하는 순서도이다.
도 5는 본 발명의 일 실시예에 따른 이진 산술 코딩 엔진부의 레귤러 모드 프로세싱 과정을 나타내는 블록도이다.
도 6은 본 발명의 일 실시예에 따른 이진 산술 코딩 엔진부의 바이패스 모드 프로세싱 과정을 나타내는 블록도이다.
도 7은 본 발명의 일 실시예에 따른 디코딩 방법으로 디코딩된 영상의 이미지들이다.
도 8a 및 도 8b는 본 발명의 일 실시예에 따른 디코딩 장치(실시예) 및 일반적인 영상 신호의 디코딩 장치들(비교예 1 및 2)의 픽셀 단위의 처리 사이클을 나타내는 것이다.
1 is a block diagram illustrating a general CABAC decoding apparatus.
2 is a block diagram illustrating an application specific instruction processor (ASIP) according to an embodiment of the present invention.
3 is a block diagram illustrating a binary arithmetic coding engine unit according to an embodiment of the present invention.
4 is a flowchart illustrating a CABAC decoding method according to an embodiment of the present invention.
5 is a block diagram illustrating a regular mode processing process of a binary arithmetic coding engine unit according to an embodiment of the present invention.
6 is a block diagram illustrating a bypass mode processing process of a binary arithmetic coding engine unit according to an embodiment of the present invention.
7 is an image of an image decoded by a decoding method according to an embodiment of the present invention.
8A and 8B show processing cycles in units of pixels of a decoding apparatus (Example) and general video signal decoding apparatuses (Comparative Examples 1 and 2) according to an embodiment of the present invention.

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

본 발명의 실시예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위하여 제공되는 것이며, 하기 실시예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 하기 실시예에 한정되는 것은 아니다. 오히려, 이들 실시예는 본 개시를 더욱 충실하고 완전하게 하고, 당업자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다.Examples of the present invention are provided to more completely explain the present invention to those of ordinary skill in the art, and the following examples may be modified in various other forms, and the scope of the present invention is as follows It is not limited to an Example. Rather, these examples are provided so that this disclosure will be more thorough and complete, and will fully convey the spirit of the invention to those skilled in the art.

도면에서 동일 부호는 동일한 요소를 지칭한다. 또한, 본 명세서에서 사용된 바와 같이, 용어 "및/또는"은 해당 열거된 항목 중 어느 하나 및 하나 이상의 모든 조합을 포함한다.In the drawings, like reference numerals refer to like elements. Also, as used herein, the term “and/or” includes any one and all combinations of one or more of those listed items.

본 명세서에서 사용된 용어는 실시예를 설명하기 위하여 사용되며, 본 발명의 범위를 제한하기 위한 것이 아니다. 또한, 본 명세서에서 단수로 기재되어 있다 하더라도, 문맥상 단수를 분명히 지적하는 것이 아니라면, 복수의 형태를 포함할 수 있다. 또한, 본 명세서에서 사용되는 "포함한다(comprise)" 및/또는 "포함하는(comprising)"이란 용어는 언급한 형상들, 숫자, 단계, 동작, 부재, 요소 및/또는 이들 그룹의 존재를 특정하는 것이며, 다른 형상, 숫자, 동작, 부재, 요소 및/또는 그룹들의 존재 또는 부가를 배제하는 것이 아니다.The terminology used herein is used to describe the embodiments, and is not intended to limit the scope of the present invention. Also, although the singular is used herein, the plural form may be included unless the context clearly indicates the singular. Also, as used herein, the terms "comprise" and/or "comprising" specify the presence of the recited shapes, numbers, steps, actions, members, elements, and/or groups thereof. It does not exclude the presence or addition of other shapes, numbers, movements, members, elements and/or groups.

이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 실시예들을 설명함에 있어 관련된 공지 기능 또는 구성에 관한 구체적인 설명이 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그에 관한 상세한 설명은 생략할 것이다. Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. When it is determined that a detailed description of a known function or configuration related to the embodiments may unnecessarily obscure the gist of the present invention, a detailed description thereof will be omitted.

일실시예에 따른 영상 처리 방법은 영상 처리 장치에 의해 수행될 수 있다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.The image processing method according to an embodiment may be performed by an image processing apparatus. Like reference numerals in each figure indicate like elements.

산술 코딩(Arithmetic coding)은 하나의 실수로서 복수 개의 심볼들을 표현할 수 있는 엔트로피 코딩을 나타낸다. 상기 산술 코딩 방법의 주어진 심볼 및 각 심볼의 확률 분포는 다른 가변 길이 코딩(Variable length coding) 방법에 비하여 최적율에 가까운 압축율을 제공할 수 있다. CABAC 알고리즘은 압축될 문맥에 의존하여 최초 확률값(initial probability)가 결정되고, 새로운 심볼의 타입에 기초하여 확률 간격이 변경되기 때문에, H.264 및 HEVC와 같은 영상 표준들을 위해 이용될 수 있다.Arithmetic coding refers to entropy coding capable of expressing a plurality of symbols as a single real number. A given symbol of the arithmetic coding method and a probability distribution of each symbol can provide a compression rate close to an optimal rate compared to other variable length coding methods. The CABAC algorithm can be used for video standards such as H.264 and HEVC because an initial probability is determined depending on a context to be compressed, and a probability interval is changed based on a new symbol type.

도 1은 일반적인 CABAC 디코딩 처리 장치를 나타내는 블록도이다. 1 is a block diagram showing a general CABAC decoding processing apparatus.

도 1을 참조하면, 본 발명의 일 실시예에 따른 CABAC디코딩 처리 장치는 문맥 모델링부(1), 레귤러 복호화 엔진(2), 바이패스 복호화 엔진(3), 및 역 이진화부(4)를 포함한다. CABAC 디코딩은 입력된 비트스트림을 이진 산술 디코딩 프로세스를 통하여 빈(bin) 값의 출력과 함께 역 이진화를 통한 신택스 엘리먼트를 판독하는 과정을 지칭한다. 상기 이진 산술 디코딩 프로세스는 두 가지 카테고리들을 포함하며, 이는 레귤러 모드와 바이패스 모드이다.Referring to FIG. 1 , a CABAC decoding processing apparatus according to an embodiment of the present invention includes a context modeling unit 1 , a regular decoding engine 2 , a bypass decoding engine 3 , and an inverse binarization unit 4 . do. CABAC decoding refers to a process of reading a syntax element through inverse binarization of an input bitstream with output of a bin value through a binary arithmetic decoding process. The binary arithmetic decoding process includes two categories, which are regular mode and bypass mode.

상기 레귤러 모드는, 상기 확률이 문맥 모델링부(1)에 의하여 결정되며, 이진 출력값은 레귤러 복호화 엔진(2)에 의하여 출력될 수 있다. 일 실시예에서, 문맥 모델링부(1)는 이후에 다음 확률 구간을 위해 갱신될 수 있다. 상기 바이패스 모드는, 문맥 모델링부(1)를 이용하지 아니하고 기설정된 확률 구간을 이용할 수 있다. 만일 상기 신택스 엘리먼트가 이진 값을 갖는다면, 상기 역 이진화 프로세스는 스킵될 수 있다.In the regular mode, the probability may be determined by the context modeling unit 1 , and a binary output value may be output by the regular decoding engine 2 . In an embodiment, the context modeling unit 1 may be updated for the next probability interval thereafter. The bypass mode may use a preset probability section without using the context modeling unit 1 . If the syntax element has a binary value, the inverse binarization process may be skipped.

일반적인 목적의 프로세서는 연속적으로 입력되는 CABAC 비트스트림을 처리하기 위한 적절한 명령어 및 동작들을 가지고 있지 않기 때문에, 다양한 명령어들을 통하여 동작하기 위한 프로세서를 필요로 한다. 한편, 만일 모든 CABAC 프로세스들이 하드웨어 내에서 실행된다면, 프로세스 속도는 빨라질 것이다. 그러나, 다른 엔트로피 코딩 기술에의 확장성은 불충분할 것이며, 하드웨어 코스트는 지원해야 하는 영상 표준이 증가함에 따라 증가할 것이다.Since a general purpose processor does not have appropriate instructions and operations for processing a continuously input CABAC bitstream, a processor is required to operate through various instructions. On the other hand, if all CABAC processes are run in hardware, the process speed will be faster. However, the scalability to other entropy coding techniques will be insufficient, and the hardware cost will increase as the video standard to be supported increases.

다른 실행(implementation) 방법에서는, 가변 길이 코딩을 위한 현존하는 어플리케이션 특정 명령어 프로세서(ASIP)를 그대로 이용한다면, 과거에 실행된 함수들을 이용함으로써 빠른 프로세싱을 수행하는 것이 가능할 수 있다. 그러나, 종래의 가변 길이 코딩을 위한 어플리케이션 특정 명령어 프로세서는 가변 길이 코딩 명령어들을 많은 비트수의 처리를 위하여 디자인되었다. 이것은 연관된 동작을 위한 하나의 어드레스를 이용하여 하나의 가변 길이 코딩을 표현하는 것을 나타낸다.In another implementation method, if an existing application specific instruction processor (ASIP) for variable length coding is used as it is, it may be possible to perform fast processing by using functions executed in the past. However, the conventional application specific instruction processor for variable length coding is designed for processing variable length coding instructions with a large number of bits. This represents expressing one variable length coding using one address for the associated operation.

그러나, CABAC 디코딩은 다음 비트에서 이용되는 문맥 모델 및 확률 값을 상기 비트스트림의 프로세싱 결과인 1 비트로 변경시키기 때문에, 상기 동작은 1 비트만을 이용하여 처리될 수 있다. 그러므로, 많은 수의 비트를 처리하기 위하여 가변 길이 코딩의 명령어를 디자인하는 것은, 한번에 하나의 비트를 동작시키는 CABAC 디코딩에는 적합하지 아니할 수 있다.However, since CABAC decoding changes the context model and probability value used in the next bit to 1 bit that is the processing result of the bitstream, the operation can be processed using only 1 bit. Therefore, designing an instruction of variable length coding to process a large number of bits may not be suitable for CABAC decoding that operates one bit at a time.

본 발명의 일실시예서는 종래의 가변 길이 코딩을 위한 어플리케이션 특정 명령어 프로세서를 확장하여 CABAC 디코딩에 적합한 어플리케이션 특정 명령어 프로세서를 설계하기로 한다. 따라서, 본 발명의 신속한 CABAC 프로세싱을 위한 산술 코딩(AC) 엔진은 하드웨어를 이용하여 종래의 가변 길이 코딩을 위한 어플리케이션 특정 명령어 프로세서와 연결될 수 있다. 그리고, 상기 신속한 CABAC 프로세싱은 CABAC 위한 산술 코딩 엔진을 효율적으로 다룰 수 있도록 명령어들을 추가함으로써 가능할 수 있다.In one embodiment of the present invention, an application-specific instruction processor suitable for CABAC decoding is designed by extending the conventional application-specific instruction processor for variable length coding. Accordingly, the arithmetic coding (AC) engine for rapid CABAC processing of the present invention can be connected with an application specific instruction processor for conventional variable length coding using hardware. And, the rapid CABAC processing may be possible by adding instructions to efficiently handle the arithmetic coding engine for CABAC.

CABAC 디코딩시, 상기 명령어들은 모든 다양한 동작 과정들을 동시에 처리할 수 있도록 디자인될 수 있다. 이 경우, 산술 코딩 엔진을 포함하는 하드웨어를 갖는 CABAC 디코딩 장치와 동일한 동작들을 처리하는 것이 가능할 수 있다. 또한, 이는 CABAC 명령어들 없이 필요한 동작들을 위한 최소한의 유닛 명령들로 구성된 축소 명령 집합 컴퓨터(Reduced Instruction Set Computer, RISC)를 이용함으로써 가능할 수 있다. 그러나, 하나의 CABAC 프로세스를 위한 다수의 명령어들이 요구될 수 있다. 또한, CABAC 비트스트림 처리시 본질적인 성격 때문에, 일반적인 비트스트림 처리 하드웨어를 이용해 효율적인 비트스트림 관련 동작들을 CABAC 명령어들에 링크함으로써 효율적인 비트스트림 프로세싱이 가능할 수 있다. 이러한 방법에서 필요한 비트스트림들은 추가적인 명령어들 또는 복수 개의 명령어들을 실행함으로써 처리될 수 있다.In CABAC decoding, the instructions may be designed to simultaneously process all various operation processes. In this case, it may be possible to process the same operations as a CABAC decoding apparatus having hardware including an arithmetic coding engine. In addition, this may be possible by using a Reduced Instruction Set Computer (RISC) composed of minimal unit instructions for necessary operations without CABAC instructions. However, multiple instructions for one CABAC process may be required. In addition, due to the intrinsic nature of CABAC bitstream processing, efficient bitstream processing may be possible by linking efficient bitstream-related operations to CABAC instructions using general bitstream processing hardware. The bitstreams needed in this way can be processed by executing additional instructions or a plurality of instructions.

본 발명의 일 실시예에 따른 CABAC 디코딩 장치는 종래의 가변 길이 코딩을 위한 어플리케이션 특정 명령어 프로세서 플랫폼이 지원하지 아니하는 CABAC 명령어들을 추가함으로써, CAVLC 및 CABAC 과 같은 다양한 압축 포맷들을 지원할 수 있다. 상기 CABAC 디코딩 장치에는 종래의 프로세서 연산 장치가 필요한 데이터를 동시에 생성하고 추출할 수 없기 때문에, 산술 코딩(AC) 엔진 및 새로운 하드웨어가 추가되고, 비트스트림을 이동시키는 동시에 랜덤 변수를 업데이트 할 수 있다. 도 1에 나타난 바와 같이, CABAC 디코딩 프로세스에서 CABAC 산술 코딩 엔진이 노말 및 바이패스 디코딩 엔진들을 처리하는 동안, 일반적인 가변 길이 코딩을 위한 어플리케이션 특정 명령어 프로세서 함수는 문맥 모델링부(1)에서 처리되고, 업데이트되며 이진화 처리될 수 있다.CABAC decoding apparatus according to an embodiment of the present invention can support various compression formats, such as CAVLC and CABAC, by adding CABAC instructions that the conventional application-specific instruction processor platform for variable length coding does not support. Since a conventional processor arithmetic unit cannot simultaneously generate and extract necessary data in the CABAC decoding apparatus, an arithmetic coding (AC) engine and new hardware are added, and a random variable can be updated while moving a bitstream. 1 , while the CABAC arithmetic coding engine processes the normal and bypass decoding engines in the CABAC decoding process, an application-specific instruction processor function for general variable length coding is processed in the context modeling unit 1 and updated and can be binarized.

도 2는 본 발명의 일 실시예에 따른 어플리케이션 특정 명령어 프로세서(ASIP)를 나타내는 블록도이다. 2 is a block diagram illustrating an application specific instruction processor (ASIP) according to an embodiment of the present invention.

도 2를 참조하면, 상기 어플리케이션 특정 명령어 프로세서는 마이크로프로세서 코어부(210), 가변 길이 코딩(VLC) 엔진(220), 이진 산술 코딩(BAC) 엔진(230), 및 런 길이 코딩(RLC) 엔진(240)을 포함할 수 있다. 상기 이진 산술 코딩 엔진(230)은 가변 길이 코딩을 위한 종래의 어플리케이션 특정 명령어 프로세서가 추가될 수 있다. 상기 이진 산술 코딩 엔진(230)은 마이크로프로세서 코어부(210)로부터 수신한 명령어들을 이용하는 신택스 프로세서(200)의 일부분으로 동작될 수 있다.Referring to FIG. 2 , the application specific instruction processor includes a microprocessor core unit 210 , a variable length coding (VLC) engine 220 , a binary arithmetic coding (BAC) engine 230 , and a run length coding (RLC) engine. (240). The binary arithmetic coding engine 230 may be added with a conventional application-specific instruction processor for variable length coding. The binary arithmetic coding engine 230 may operate as a part of the syntax processor 200 using instructions received from the microprocessor core unit 210 .

신택스 프로세서(200)에 의해 디코딩되는 런/레벨 값들은 런 길이 코딩(RLC) 엔진(240)로 송신될 수 있다. 런 길이 코딩 엔진(240)은 메모리(100)에 저장된 지그-재그 테이블을 이용하여 전달된 상기 런/레벨 값들 및 상기 런/레벨 값들의 위치 정보를 결합함으로써 레지듀얼 데이터를 생성할 수 있다. 그 이후에, 상기 생성된 데이터들은 상기 어플리케이션 특정 명령어 프로세서에 연결된 시스템으로 전달될 수 있다.The run/level values decoded by the syntax processor 200 may be transmitted to a run length coding (RLC) engine 240 . The run length coding engine 240 may generate residual data by combining the delivered run/level values and location information of the run/level values using a zig-zag table stored in the memory 100 . Thereafter, the generated data may be transferred to a system coupled to the application specific instruction processor.

도 3은 본 발명의 일 실시예에 따른 이진 산술 코딩 엔진부(230)의 동작을 나타내는 블록도이다.3 is a block diagram illustrating the operation of the binary arithmetic coding engine unit 230 according to an embodiment of the present invention.

도 3을 참조하면, 이진 산술 코딩 엔진부(230)는 마이크로프로세서 코어부(210) 내에 저장되어 이진 산술 코딩 엔진부(230)로 전달되는 이진 산술 코딩 특정 명령어들에 따라 동작될 수 있다. CABAC 디코딩을 위해 요구되는 다양한 테이블 데이터들은 메모리에 저장될 수 있고, 메모리와 관련된 명령어들을 이용함으로써 어셈블리 코드를 통하여 이용될 수 있다. 그러므로, 만일 상기 테이블 데이터에 변경이 필요하다면, 메모리(100) 영역 내의 데이터들은 변경될 수 있다. 이러한 테이블들은 상기 이진 산술 코딩 엔진(230)의 요구로서 로딩될 수 있다. Referring to FIG. 3 , the binary arithmetic coding engine unit 230 may be operated according to specific binary arithmetic coding instructions stored in the microprocessor core unit 210 and transmitted to the binary arithmetic coding engine unit 230 . Various table data required for CABAC decoding may be stored in a memory and may be used through assembly code by using memory-related instructions. Therefore, if the table data needs to be changed, the data in the memory 100 area may be changed. These tables can be loaded as a request of the binary arithmetic coding engine 230 .

또한, 비트스트림 레지스터(300)는 이진 산술 코딩 엔진(230)을 위한 비트스트림을 고정하기 위해 이용될 수 있다. 일 실시예에서, 비트스트림 레지스터(300)는 이진 산술 코딩 엔진(230) 에서 이용되는 비트를 제거함과 동시에 저장되는 비트스트림을 다음 비트스트림으로 재조정할 수 있다.Also, the bitstream register 300 may be used to hold a bitstream for the binary arithmetic coding engine 230 . In an embodiment, the bitstream register 300 may readjust the stored bitstream to the next bitstream while removing the bit used by the binary arithmetic coding engine 230 .

이진 산술 코딩 엔진(230)에어 이용되는 새로운 명령어는 레귤러 모드를 동작시키는 디코딩 레귤러(DSR) 명령 및 바이패스 모드를 위한 디코딩 바이패스(DCB) 명령과 관련된 것일 수 있다. 상기 디코딩 레귤러 명령은 최대 확률 심볼(MPS) 값 및 상태 인덱스 모두를 전달하는 문맥 인덱스 값들을 전달하며, 레귤러 모드를 동작시킬 수 있다. 상기 디코딩 바이패스 명령은 고정 확률 값을 이용하여 바이패스 모드를 동작시킬 수 있다.The new instructions used on the binary arithmetic coding engine 230 may be related to the Decoding Regular (DSR) instruction to operate the regular mode and the Decoding Bypass (DCB) instruction for the Bypass mode. The decoding regular command carries context index values carrying both a maximum probability symbol (MPS) value and a state index, and can operate in regular mode. The decoding bypass command may operate the bypass mode using a fixed probability value.

도 4는 본 발명의 일 실시예에 따른 CABAC 디코딩 방법을 설명하는 순서도이다.4 is a flowchart illustrating a CABAC decoding method according to an embodiment of the present invention.

도 4를 참조하면, 먼저 CABAC 디코딩 장치는 영상 신호를 수신할 수 있다(S10). 상기 영상 신호는 CABAC 디코딩을 수행하는 비트스트림의 전체일 수 있고, 비트스트림의 일부 영역일 수도 있다. 또한, 본 발명의 일 실시예에 다른 CABAC 디코딩 장치는 상기 영상 신호의 타입 정보를 수신할 수 있다(S20). Referring to FIG. 4 , first, the CABAC decoding apparatus may receive an image signal ( S10 ). The video signal may be the entire bitstream in which CABAC decoding is performed, or a portion of the bitstream. In addition, the CABAC decoding apparatus according to an embodiment of the present invention may receive type information of the video signal (S20).

상기 타입 정보는 상기 영상 신호에 대하여 어플리케이션 특정 명령어 프로세서에 기반한 CABAC 디코딩을 수행하기 위하여, 상기 디코딩 처리 과정 중 레귤러 모드 및 바이패스 모드 중 어떠한 모드를 수행하는지를 나타내는 정보일 수 있다. 상기 타입 정보는 상기 수신된 영상 신호에 포함되어 수신되거나 상기 영상 신호가 전체 비트스트림의 일부인 경우에는 상기 영상 신호와 별도의 신택스를 통하여 CABAC 디코딩 장치에 수신될 수도 있다.The type information may be information indicating which mode among a regular mode and a bypass mode is performed during the decoding process in order to perform CABAC decoding based on an application-specific command processor on the video signal. The type information may be received by being included in the received video signal or may be received by the CABAC decoding apparatus through a syntax separate from the video signal when the video signal is a part of the entire bitstream.

상기 레귤러 모드는 메모리로부터 수신되는 정보들을 이용하여 문맥 인덱스 값을 갱신하고 사용될 디코딩 비트 값을 출력하는 모드일 수 있다. 따라서, 다음 확률 구간을 위한 값이 갱신될 수 있다. 한편, 상기 바이패스 모드는 문맥 모델링부를 이용하여 문맥 인덱스 값을 갱신함 없이 디코딩 비트를 출력하며, 문맥 모델링을 수행하지 아니하므로 기설정된 확률 구간을 이용하는 모드일 수 있다. The regular mode may be a mode in which a context index value is updated using information received from a memory and a decoding bit value to be used is output. Accordingly, the value for the next probability interval may be updated. Meanwhile, the bypass mode may be a mode that uses the context modeling unit to output decoding bits without updating the context index value, and uses a preset probability interval because context modeling is not performed.

그러므로, 본 발명의 CABAC 디코딩 방법은, 상기 타입 정보에 따라, 업데이트된 문맥 인덱스 값 및 디코딩 비트 값 중 적어도 하나 이상을 출력할 수 있다(S30). 상세하게는, 상기 타입 정보가 레귤러 모드인 경우에는, 상기 업데이트된 문맥 인덱스 값 및 상기 디코딩 비트 값 모두를 출력할 수 있다. 또한, 상기 타입 정보가 바이패스 모드인 경우에는 상기 업데이트된 문맥 인덱스 값은 출력하지 아니하고 상기 디코딩 비트 값 만을 출력할 수 있다.Therefore, the CABAC decoding method of the present invention may output at least one of an updated context index value and a decoding bit value according to the type information (S30). In detail, when the type information is in the regular mode, both the updated context index value and the decoding bit value may be output. In addition, when the type information is in the bypass mode, the updated context index value may not be output, and only the decoding bit value may be output.

도 5은 본 발명의 일 실시예에 따른 이진 산술 코딩 엔진부의 레귤러 모드 프로세싱 과정을 나타내는 블록도이다.5 is a block diagram illustrating a regular mode processing process of a binary arithmetic coding engine unit according to an embodiment of the present invention.

도 5를 참조하면, CABAC 디코딩 장치에서 레귤러 모드로 입력 신호를 처리하는 경우에는 마이크로프로세서 코어부(210), BAC 엔진(230), 메모리(100), 및 레지스터(300)가 활성화되어 상기 입력 신호를 처리할 수 있다.Referring to FIG. 5 , when the CABAC decoding apparatus processes an input signal in the regular mode, the microprocessor core unit 210 , the BAC engine 230 , the memory 100 , and the register 300 are activated to activate the input signal. can be processed

레귤러 모드에서 레지스터(300)는 출력 비트를 저장하는 목적 레지스터(dr) 및 전송을 위한 문맥 인덱스 값을 저장하는 소스 레지스터(sr)를 포함할 수 있다. 상기 레귤러 모드를 실행하기 위하여는, 관련 실행이 처리되었으나 아직 상기 레귤러 모드 명령들을 실행하기 이전에 상기 문맥 인덱스 값이 상기 레지스터에 저장되어야 한다. 일단 상기 레귤러 모드 명령들을 통해 현재 상태의 상기 문맥 인덱스 값이 전송되면, BAC 엔진(230)은 상태 변환 테이블 데이터 및 상기 문맥 인덱스 값에 대응하는 범위 테이블 데이터를 계산할 수 있다. In the regular mode, the register 300 may include a destination register (dr) for storing an output bit and a source register (sr) for storing a context index value for transmission. In order to execute the regular mode, the context index value must be stored in the register before the relevant execution has been processed but still executing the regular mode instructions. Once the context index value of the current state is transmitted through the regular mode commands, the BAC engine 230 may calculate state conversion table data and range table data corresponding to the context index value.

그 이후에, BAC 엔진(230)은 산술 코딩 프로세스를 위해 레지스터(300)로부터 비트스트림을 수신할 수 있다. 상기 프로세스들이 완료되면, 다음 상태를 위한 상기 문맥 인덱스 값 및 상기 디코딩 비트들이 출력될 수 있다. 또한, 만일 상기 비트스트림이 이용되었다면, 다음 프로세싱에 이용될 수 있도록 비트스트림의 위치를 나타내는 비트스트림 위치 정보는 변경될 수 있다. Thereafter, the BAC engine 230 may receive the bitstream from the register 300 for an arithmetic coding process. When the processes are completed, the context index value and the decoding bits for the next state may be output. In addition, if the bitstream has been used, the bitstream location information indicating the location of the bitstream may be changed so that it can be used for subsequent processing.

BAC 엔진(230)에서 상기 업데이트된 문맥 인덱스 값은 상기 목적 레지스터(dr)에 저장될 수 있고, 상기 출력 비트는 상기 소스 레지스터(sr)에 저장될 수 있다. 이와 같이, 본 발명의 일 실시예에 따른 어플리케이션 특정 명령어 프로세서에 기반한 CABAC 디코딩 장치는 영상 신호를 수신하여 처리하는 마이크로프로세서 코어부(210)와 업데이트된 문맥 인덱스 값과 디코딩 비트를 처리하여 출력하는 BAC 엔진(230)을 모두 포함하고 있으므로, 병렬적으로 문맥 적응적 가변 길이 코딩 수행이 가능할 수 있다.In the BAC engine 230, the updated context index value may be stored in the destination register dr, and the output bit may be stored in the source register sr. As described above, the CABAC decoding apparatus based on the application-specific instruction processor according to an embodiment of the present invention includes the microprocessor core unit 210 that receives and processes the video signal, and the BAC that processes and outputs the updated context index value and the decoding bit. Since all engines 230 are included, it may be possible to perform context-adaptive variable-length coding in parallel.

도 6은 본 발명의 일 실시예에 따른 이진 산술 코딩 엔진부의 바이패스 모드 프로세싱 과정을 나타내는 블록도이다.6 is a block diagram illustrating a bypass mode processing process of a binary arithmetic coding engine unit according to an embodiment of the present invention.

도 6을 참조하면, CABAC 디코딩 장치에서 바이패스 모드로 입력 신호를 처리하는 경우에는 마이크로프로세서 코어부(210), BAC 엔진(230), 및 레지스터(300)가 활성화되어 상기 입력 신호를 처리할 수 있다.Referring to FIG. 6 , when the CABAC decoding apparatus processes an input signal in the bypass mode, the microprocessor core unit 210 , the BAC engine 230 , and the register 300 are activated to process the input signal. have.

바이패스 모드에서 레지스터(300)는 출력 비트를 저장하는 목적 레지스터(dr)를 포함할 수 있다. 상기 바이패스 모드가 실행되는 경우에는 BAC 엔진(230)은 고정 확률 값을 가지고 프로세스를 실행시킬 수 있다. 그러므로, 메모리에 저장되는 테이블 데이터들이 필요하지 아니할 수 있다. 상기 비트스트림은 레지스터(300)에서 이용되고, 상기 비트스트림의 위치가 조절된 후에 상기 위치를 나타내는 위치 정보를 다시 비트스트림 레지스터로 전달시킬 수 있다. 상기 디코딩 비트는 목적 레지스터(dr)에 저장될 수 있다.In the bypass mode, the register 300 may include a destination register dr that stores an output bit. When the bypass mode is executed, the BAC engine 230 may execute the process with a fixed probability value. Therefore, table data stored in the memory may not be required. The bitstream is used in the register 300, and after the location of the bitstream is adjusted, location information indicating the location may be transferred back to the bitstream register. The decoding bit may be stored in the destination register dr.

BAC 엔진(23)를 통한 비트 출력은 레지스터(300)에 저장되거나 이미 디코딩된 비트들과 결합할 수 있다. 저장되거나 결합된 비트들은 필요에 따라 신택스 프로세싱을 통해 신택스 엘리먼트들로 디코딩될 수 있다. 일 실시예에서, 디코딩된 값들은 레지듀얼 데이터를 완성하기 위하여, BSP 의 프로세싱 후에 이용하기 위한 데이터를 생성하기 위한 다양한 파라미터들 및 블록들이 정렬될 수 있다.The bit output through the BAC engine 23 may be stored in register 300 or combined with bits already decoded. The stored or combined bits may be decoded into syntax elements through syntax processing as needed. In one embodiment, the decoded values may be aligned with various parameters and blocks to generate data for use after processing of the BSP to complete the residual data.

이와 같이, 본 발명의 일 실시예에 따른 어플리케이션 특정 명령어 프로세서에 기반한 CABAC 디코딩 장치는 영상 신호를 수신하여 처리하는 마이크로프로세서 코어부(210)와 업데이트된 문맥 인덱스 값과 디코딩 비트를 처리하여 출력하는 BAC 엔진(230)을 모두 포함하고 있고, 이들을 이용하여 레귤러 모드 및 바이패스 모드 모두를 수행하므로, 추가되는 하드웨어 코스트를 최소화하며 빠른 처리 속도를 제공할 수 있다. As described above, the CABAC decoding apparatus based on the application-specific instruction processor according to an embodiment of the present invention includes the microprocessor core unit 210 that receives and processes the video signal, and the BAC that processes and outputs the updated context index value and the decoding bit. Since both the engine 230 is included and both the regular mode and the bypass mode are performed using them, it is possible to provide a fast processing speed while minimizing an additional hardware cost.

본 발명의 일 실시예에 따른 CABAC 디코딩 장치의 효과를 검증하기 위하여, 기존의 디코딩 장치들과 본 발명에 따른 CABAC 디코딩 장치의 성능을 비교하였다. 본 발명의 일 실시예에 따른 CABAC 디코딩 장치는 일반적인 가변 길이 코딩을 수행하는 어플리케이션 특정 명령어 프로세서 플랫폼 상에 테스트를 위하여 본 발명의 BAC 엔진(230) 및 레귤러 모드와 바이패스 모드를 수행할 수 있는 새로운 명령들을 탑재하였다. 베릴로그 언어는 손쉬운 시뮬레이션과 사이클의 명확성을 보증하기 위하여 사용되었으며, BAC 엔진(230)은 행동 모델로서 탑재되었다. In order to verify the effect of the CABAC decoding apparatus according to an embodiment of the present invention, the performances of the existing decoding apparatuses and the CABAC decoding apparatus according to the present invention were compared. CABAC decoding apparatus according to an embodiment of the present invention for testing on an application-specific instruction processor platform performing general variable length coding, the BAC engine 230 of the present invention and a new method capable of performing regular mode and bypass mode commands are loaded. The verilog language was used to ensure easy simulation and cycle clarity, and the BAC engine 230 was loaded as a behavioral model.

또한, 검증 중 HEVC CABAC 디코딩 프로세스는 BAC 엔진 및 명령어 수행을 검증하기 위하여 시뮬레이션 되었다. HEVC 레퍼런스 소프트웨어로서 HM 16.5 버전을 이용하여 플랫폼 오퍼레이션에 이용되는 HEVC 를 위한 어셈블리 코드는 기재되었고, 입력 비트스트림이 생성되었다. 상기 생성된 비트스트림 및 어셈블리 코드는 입력되고, ASIP 플랫폼 내에서 디코딩된 상기 파라미터 값들 및 레지듀얼 데이터는 수정된 오퍼레이션을 확인하기 위하여 HM 16.5 버전버젼 디코딩된 값들과 비교되었다.Also, during verification, the HEVC CABAC decoding process was simulated to verify the BAC engine and instruction execution. The assembly code for HEVC used for platform operation was described using HM 16.5 version as HEVC reference software, and an input bitstream was generated. The generated bitstream and assembly code are input, and the parameter values and residual data decoded in the ASIP platform are compared with the HM 16.5 version decoded values to confirm the modified operation.

본 발명의 CABAC 디코딩 장치와 다른 명령어 그룹들을 이용하는 다른 마이크로프로세서 플랫폼은 직접적으로 비교하는 것이 쉽지 아니하다. 따라서, 영상 픽셀의 프로세싱 성능을 간접적으로 비교하기 위하여, CPP(Cycles per pixel) 값을 연산하였다.A direct comparison between the CABAC decoding apparatus of the present invention and other microprocessor platforms using different instruction groups is not easy. Therefore, in order to indirectly compare the processing performance of image pixels, a CPP (Cycles per pixel) value was calculated.

본 발명의 일 실시예에 따른 CABAC 디코딩 장치(실험예)와 비교를 위하여 Intel 사의 IA32(비교예 1) 및 ARMv7(비교예 2) 기반 프로세서들이 이용되었다. 비교예 1의 IA32 를 위해서는 Intel i7-6700 프로세서들이 이용되고, 비교예 2의 ARMv7 를 위해서는 Cortex-A53 MP4 프로세서가 이용되었다. 상기 i7-6700 프로세서는 4개의 코어들을 포함하고, 하이퍼-스레딩(8개의 스레드)을 지원할 수 있다. 상기 Cortex-A53 MP4 프로세서는 4개의 코어들을 갖는다. 실험예 및 비교예들은 VLSI(very-large-scale-integration) 탑재를 위해 이용되는 클럭에 기초하는 시뮬레이션 사이클을 분석함으로써 비교되었다.For comparison with the CABAC decoding apparatus (Experimental Example) according to an embodiment of the present invention, Intel's IA32 (Comparative Example 1) and ARMv7 (Comparative Example 2) based processors were used. For the IA32 of Comparative Example 1, Intel i7-6700 processors were used, and for the ARMv7 of Comparative Example 2, a Cortex-A53 MP4 processor was used. The i7-6700 processor includes 4 cores and can support hyper-threading (8 threads). The Cortex-A53 MP4 processor has four cores. Experimental examples and comparative examples were compared by analyzing a simulation cycle based on a clock used for very-large-scale-integration (VLSI) mounting.

테스트에서 이용된 HM 16.5 소프트웨어의 동일한 성능을 비교하기 위해, 실험예의 플랫폼 상에 탑재된 함수 구간을 특정함으로써 연산 시간을 측정하였다. 또한, 실험예의 플랫폼에 미치는 다른 요소들의 영향을 최소화하기 위하여, 픽셀 동작 단위당 평균 10 사이클을 계산하였다. 비교예 1 및 2는 최적의 퍼포먼스와 정확한 측정 시간들을 보증하기 위해 리눅스 플랫폼 상에서 분석되었다. 실험예 및 비교예들의 실험에 이용된 컴플라이어는 GCC 버전 4.9이고, 최적화된 옵션 O3 를 이용하여 HM 16.5 소프트웨어가 컴파일링되었으며, 실행가능한 릴리즈 모드로서 테스트되었다. 데이터의 비교를 간단하게 하고 소요 시간을 줄이기 위하여, 704 x 576 픽셀 해상도의 하나의 영상 크기만이 고려되었으며, 인트라 프레임을 위한 디코딩 결과도 HEVC 메인 프로파일만을 이용하여 비교될 것이다. 이러한 비교 결과는 도 7에 도시하였다.In order to compare the same performance of the HM 16.5 software used in the test, the calculation time was measured by specifying a function section mounted on the platform of the experimental example. In addition, in order to minimize the influence of other factors on the platform of the experimental example, an average of 10 cycles per pixel operation unit was calculated. Comparative Examples 1 and 2 were analyzed on a Linux platform to ensure optimal performance and accurate measurement times. The compiler used in the experiments of the Experimental Examples and Comparative Examples was GCC version 4.9, the HM 16.5 software was compiled using the optimized option O3, and tested as an executable release mode. In order to simplify data comparison and reduce the required time, only one image size of 704 x 576 pixel resolution was considered, and the decoding result for the intra frame will also be compared using only the HEVC main profile. This comparison result is shown in FIG. 7 .

도 7은 본 발명의 일 실시예에 따른 디코딩 방법으로 디코딩된 영상의 이미지들이고, 도 8a 및 도 8b는 본 발명의 일 실시예에 따른 디코딩 장치(실험예) 및 일반적인 영상 신호의 디코딩 장치들(비교예 1 및 2)의 픽셀 단위의 처리 사이클을 나타내는 것이다.7 is an image of an image decoded by a decoding method according to an embodiment of the present invention, and FIGS. 8A and 8B are a decoding apparatus (experimental example) and a general image signal decoding apparatus according to an embodiment of the present invention ( The pixel unit processing cycle of Comparative Examples 1 and 2) is shown.

도 8을 참조하면, 실험예의 CABAC 디코딩 장치는 9.91 내지 22.74 CPP 이고, 비교예 1 및 2 의 디코딩 장치는 18.52 내지 40.10 CPP 및 9.91 내지 22.74 CPP 임을 확인할 수 있다. 비교예 1 및 2 에 비하여 실험예의 디코딩 장치의 CPP 값이 약 1.76 내지 7.69 감소됨을 알 수 있다.Referring to FIG. 8 , it can be seen that the CABAC decoding apparatus of the experimental example is 9.91 to 22.74 CPP, and the decoding apparatus of Comparative Examples 1 and 2 is 18.52 to 40.10 CPP and 9.91 to 22.74 CPP. It can be seen that the CPP value of the decoding apparatus of the experimental example is reduced by about 1.76 to 7.69 compared to Comparative Examples 1 and 2.

그러므로, 본 발명의 CABAC 디코딩 장치는 병렬 처리 및 룩업 테이블을 이용할 수 있는 어플리케이션 특정 명령어 프로세서(ASIP)에 이진화 산술 코딩 엔진을 포함함으로써, 추가되는 하드웨어 코스트를 최소화하며 빠른 처리 속도를 제공 가능함을 확인할 수 있다. Therefore, the CABAC decoding apparatus of the present invention includes a binary arithmetic coding engine in an application-specific instruction processor (ASIP) that can use parallel processing and a lookup table, so that it is possible to minimize the added hardware cost and provide a fast processing speed. have.

이상에서 설명한 본 발명이 전술한 실시예 및 첨부된 도면에 한정되지 않으며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러가지 치환, 변형 및 변경이 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.It is common in the art to which the present invention pertains that the present invention described above is not limited to the above-described embodiments and the accompanying drawings, and various substitutions, modifications and changes are possible within the scope without departing from the technical spirit of the present invention. It will be clear to those who have knowledge.

Claims (12)

어플리케이션 특정 명령어 프로세서를 이용하여 CABAC 디코딩을 수행하는 방법에 있어서,
영상 신호를 수신하는 단계;
상기 영상 신호의 타입 정보를 수신하는 단계;
상기 타입 정보에 따라 문맥 인덱스 값 및 상기 영상 신호 중 적어도 하나 이상에 기초하여 업데이트된 문맥 인덱스 값과 디코딩 비트 중 적어도 하나 이상을 출력하는 단계를 포함하며,
상기 타입 정보는 상기 문맥 인덱스 값을 업데이트하는 레귤러 모드 정보 및 상기 문맥 인덱스 값의 업데이트는 수행되지 아니하는 바이패스 모드 정보를 포함하는 어플리케이션 특정 명령어 프로세서에 기반한 CABAC 디코딩 방법.
A method of performing CABAC decoding using an application-specific instruction processor, the method comprising:
receiving an image signal;
receiving type information of the video signal;
outputting at least one of a context index value and a decoding bit updated based on at least one of a context index value and the video signal according to the type information,
The type information includes regular mode information for updating the context index value and bypass mode information in which the context index value update is not performed. CABAC decoding method based on an application-specific instruction processor.
어플리케이션 특정 명령어 프로세서를 이용하여 CABAC 디코딩을 수행하는 방법에 있어서,
영상 신호를 수신하는 단계;
상기 영상 신호의 타입 정보를 수신하는 단계;
상기 타입 정보에 따라 문맥 인덱스 값 및 상기 영상 신호 중 적어도 하나 이상에 기초하여 업데이트된 문맥 인덱스 값과 디코딩 비트 중 적어도 하나 이상을 출력하는 단계를 포함하며,
상기 업데이트된 문맥 인덱스 값과 디코딩 비트 중 적어도 하나 이상을 출력하는 단계는 상기 영상 신호를 수신함과 동시에 수행되는 어플리케이션 특정 명령어 프로세서에 기반한 CABAC 디코딩 방법.
A method of performing CABAC decoding using an application-specific instruction processor, the method comprising:
receiving an image signal;
receiving type information of the video signal;
outputting at least one of a context index value and a decoding bit updated based on at least one of a context index value and the video signal according to the type information,
The step of outputting at least one of the updated context index value and the decoding bit is performed simultaneously with receiving the video signal. CABAC decoding method based on an application-specific command processor.
삭제delete 제 1 항에 있어서,
상기 타입 정보가 레귤러 모드 정보인 경우,
상기 업데이트된 문맥 인덱스 값과 디코딩 비트 중 적어도 하나 이상을 출력하는 단계는,
현재 상태의 문맥 인덱스 값이 레지스터에 저장되어 있는지 확인하는 단계;
상기 현재 상태의 문맥 인덱스 값이 저장된 경우, 상기 저장된 문맥 인덱스 값을 이용하여 상태 변환 테이블 및 상기 문맥 인덱스 값에 대응하는 범위 테이블을 연산하는 단계;
상기 영상 신호, 상기 상태 변환 테이블 및 상기 범위 테이블을 이용하여 산술 코딩을 수행하는 단계;
상기 산술 코딩시 계산된 상기 업데이트된 문맥 인덱스 값과 상기 디코딩 비트를 출력하는 단계; 및
상기 영상 신호를 나타내는 로케이션 정보는 다음 영상 신호를 나타내도록 조절되는 단계를 포함하는 어플리케이션 특정 명령어 프로세서에 기반한 CABAC 디코딩 방법.
The method of claim 1,
When the type information is regular mode information,
Outputting at least one of the updated context index value and the decoding bit comprises:
checking whether the context index value of the current state is stored in the register;
when the context index value of the current state is stored, calculating a state conversion table and a range table corresponding to the context index value using the stored context index value;
performing arithmetic coding using the video signal, the state conversion table, and the range table;
outputting the updated context index value calculated during the arithmetic coding and the decoding bit; and
The location information representing the video signal is adjusted to represent the next video signal CABAC decoding method based on an application specific instruction processor.
제 1 항에 있어서,
상기 타입 정보가 바이패스 모드 정보인 경우,
상기 업데이트된 문맥 인덱스 값과 디코딩 비트 중 적어도 하나 이상을 출력하는 단계는,
상기 영상 신호 및 고정된 확률값을 이용하여 산술 코딩을 수행하는 단계;
상기 산술 코딩시 계산된 디코딩 비트 값을 출력하는 단계; 및
상기 영상 신호를 나타내는 로케이션 정보는 다음 영상 신호를 나타내도록 조절되는 단계를 포함하는 어플리케이션 특정 명령어 프로세서에 기반한 CABAC 디코딩 방법.
The method of claim 1,
When the type information is bypass mode information,
Outputting at least one of the updated context index value and the decoding bit comprises:
performing arithmetic coding using the video signal and a fixed probability value;
outputting a decoded bit value calculated during the arithmetic coding; and
The location information representing the video signal is adjusted to represent the next video signal CABAC decoding method based on an application specific instruction processor.
어플리케이션 특정 명령어 프로세서를 이용하여 CABAC 디코딩을 수행하는 장치에 있어서,
상기 어플리케이션 특정 명령어를 저장하는 메모리; 및
영상 신호를 문맥 적응적으로 이진 산술 코딩하기 위하여 상기 영상 신호의 타입 정보에 기초하여 문맥 인덱스 및 디코딩 비트 중 적어도 하나 이상을 생성하고, 상기 생성된 문맥 인덱스 및 디코딩 비트 중 적어도 하나 이상을 이용하여 상기 영상 신호를 코딩하는 신택스 프로세서를 포함하며,
상기 타입 정보는 상기 문맥 인덱스 값을 업데이트하는 레귤러 모드 정보 및 상기 문맥 인덱스 값의 업데이트는 수행되지 아니하는 바이패스 모드 정보를 포함하는 어플리케이션 특정 명령어 프로세서에 기반한 CABAC 디코딩 장치.
An apparatus for performing CABAC decoding using an application specific instruction processor, comprising:
a memory for storing the application-specific instructions; and
At least one of a context index and a decoding bit is generated based on the type information of the video signal in order to context-adaptively perform binary arithmetic coding of the video signal, and at least one of the generated context index and decoding bit is used to generate the A syntax processor for coding the video signal,
The type information includes regular mode information for updating the context index value and bypass mode information in which the context index value update is not performed.
어플리케이션 특정 명령어 프로세서를 이용하여 CABAC 디코딩을 수행하는 장치에 있어서,
상기 어플리케이션 특정 명령어를 저장하는 메모리; 및
영상 신호를 문맥 적응적으로 이진 산술 코딩하기 위하여 상기 영상 신호의 타입 정보에 기초하여 문맥 인덱스 및 디코딩 비트 중 적어도 하나 이상을 생성하고, 상기 생성된 문맥 인덱스 및 디코딩 비트 중 적어도 하나 이상을 이용하여 상기 영상 신호를 코딩하는 신택스 프로세서를 포함하며,
상기 신택스 프로세서는,
상기 영상 신호에 대하여 가변 길이 코딩을 수행하는 VLC 엔진;
상기 영상 신호에 대하여 이진 산술 코딩을 수행하는 BAC 엔진;
상기 영상 신호에 대하여 런 길이 코딩을 수행하는 RLC 엔진; 및
상기 VLC 엔진, 상기 BAC 엔진, 및 상기 RLC 엔진의 코딩 수행여부 및 상기 코딩에 관련된 명령을 제어하는 마이크로프로세서 코어부를 포함하는 어플리케이션 특정 명령어 프로세서에 기반한 CABAC 디코딩 장치.
An apparatus for performing CABAC decoding using an application specific instruction processor, comprising:
a memory for storing the application-specific instructions; and
At least one of a context index and a decoding bit is generated based on the type information of the video signal in order to context-adaptively perform binary arithmetic coding of the video signal, and at least one of the generated context index and decoding bit is used to generate the A syntax processor for coding the video signal,
The syntax processor,
a VLC engine that performs variable length coding on the video signal;
a BAC engine for performing binary arithmetic coding on the video signal;
an RLC engine that performs run-length coding on the video signal; and
CABAC decoding apparatus based on an application-specific instruction processor comprising a microprocessor core for controlling whether the VLC engine, the BAC engine, and the RLC engine perform coding and a command related to the coding.
제 7 항에 있어서,
상기 BAC 엔진은,
상기 타입 정보에 기초하여 명령을 수행하는 마이크로프로세서 코어부;
상기 마이크로프로세서 코어부로부터 상기 타입 정보 및 현재 상태의 문맥 인덱스 값을 수신하고, 상기 문맥 인덱스 값이 업데이트 되는 경우, 업데이트된 문맥 인덱스 값을 수신하며, 상기 영상 신호를 위한 디코딩 비트 값을 출력하는 BAC 제어부; 및
상기 문맥 인덱스 값을 이용하여 상태 변환 테이블 및 상기 문맥 인덱스 값에 대응하는 범위 테이블을 연산하고, 상기 영상 신호, 상기 상태 변환 테이블, 및 상기 범위 테이블을 이용하여 산술 코딩을 수행하며, 상기 산술 코딩시 계산된 상기 업데이트된 문맥 인덱스 값과 상기 디코딩 비트 중 적어도 하나 이상을 출력하는 BAC 엔진 코어부를 포함하는 어플리케이션 특정 명령어 프로세서에 기반한 CABAC 디코딩 장치.
8. The method of claim 7,
The BAC engine is
a microprocessor core unit that executes an instruction based on the type information;
BAC for receiving the type information and the context index value of the current state from the microprocessor core unit, receiving the updated context index value when the context index value is updated, and outputting a decoding bit value for the video signal control unit; and
A state conversion table and a range table corresponding to the context index value are calculated using the context index value, and arithmetic coding is performed using the video signal, the state conversion table, and the range table, and when the arithmetic coding is performed CABAC decoding apparatus based on an application-specific instruction processor including a BAC engine core for outputting at least one of the calculated updated context index value and the decoding bit.
제 8 항에 있어서,
상기 타입 정보가 레귤러 모드 정보인 경우,
상기 BAC 제어부는 상기 업데이트된 문맥 인덱스 값과 상기 디코딩 비트값을 상기 마이크로프로세서 코어부로 출력하고,
상기 BAC 엔진 코어부는 상기 업데이트된 문맥 인덱스 값과 상기 디코딩 비트값을 모두를 상기 BAC 제어부로 출력하는 어플리케이션 특정 명령어 프로세서에 기반한 CABAC 디코딩 장치.
9. The method of claim 8,
When the type information is regular mode information,
The BAC control unit outputs the updated context index value and the decoding bit value to the microprocessor core unit,
The BAC engine core unit outputs both the updated context index value and the decoding bit value to the BAC control unit, an application-specific command processor-based CABAC decoding apparatus.
제 8 항에 있어서,
상기 타입 정보가 바이패스 모드 정보인 경우,
상기 BAC 제어부는 상기 디코딩 비트값을 상기 마이크로프로세서 코어부로 출력하고,
상기 BAC 엔진 코어부는 고정된 확률값 및 상기 영상 신호를 이용하여 상기 디코딩 비트값을 상기 BAC 제어부로 출력하는 어플리케이션 특정 명령어 프로세서에 기반한 CABAC 디코딩 장치.
9. The method of claim 8,
When the type information is bypass mode information,
The BAC control unit outputs the decoding bit value to the microprocessor core unit,
CABAC decoding apparatus based on an application-specific command processor for outputting the decoded bit value to the BAC control unit using a fixed probability value and the image signal using the BAC engine core unit.
어플리케이션 특정 명령어 프로세서를 이용하여 CABAC 디코딩을 수행하는 장치에 있어서,
영상 신호를 문맥 적응적으로 이진 산술 코딩하기 위하여 상기 영상 신호의 타입 정보에 기초하여 문맥 인덱스 및 디코딩 비트 중 적어도 하나 이상을 생성하고, 상기 생성된 문맥 인덱스 및 디코딩 비트 중 적어도 하나 이상을 이용하여 상기 영상 신호를 코딩하는 신택스 프로세서;
상기 어플리케이션 특정 명령어, 상태 변환 테이블 데이터 및 상기 생성된 문맥 인덱스에 대응하는 범위 테이블 데이터를 저장하는 메모리; 및
상기 생성된 문맥 인덱스, 상기 디코딩 비트, 및 상기 영상 신호를 저장하는 레지스터를 포함하는 어플리케이션 특정 명령어 프로세서에 기반한 CABAC 디코딩 장치.
An apparatus for performing CABAC decoding using an application specific instruction processor, comprising:
At least one of a context index and a decoding bit is generated based on the type information of the video signal in order to context-adaptively perform binary arithmetic coding of the video signal, and at least one of the generated context index and decoding bit is used to generate the a syntax processor for coding an image signal;
a memory for storing the application-specific instruction, state conversion table data, and range table data corresponding to the generated context index; and
CABAC decoding apparatus based on an application-specific instruction processor including a register for storing the generated context index, the decoding bit, and the video signal.
제 11 항에 있어서,
상기 생성된 문맥 인덱스와 상기 디코딩 비트 중 적어도 하나 이상을 출력함과 동시에 상기 영상 신호를 수신하는 BAC 엔진 코어부를 더 포함하는 어플리케이션 특정 명령어 프로세서에 기반한 CABAC 디코딩 장치.
12. The method of claim 11,
CABAC decoding apparatus based on an application-specific command processor further comprising a BAC engine core for outputting at least one of the generated context index and the decoding bit and simultaneously receiving the video signal.
KR1020170173992A 2017-12-18 2017-12-18 A method of cabac decoding based on an application specific processor and an apparatus therefor KR102268017B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170173992A KR102268017B1 (en) 2017-12-18 2017-12-18 A method of cabac decoding based on an application specific processor and an apparatus therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170173992A KR102268017B1 (en) 2017-12-18 2017-12-18 A method of cabac decoding based on an application specific processor and an apparatus therefor

Publications (2)

Publication Number Publication Date
KR20190072873A KR20190072873A (en) 2019-06-26
KR102268017B1 true KR102268017B1 (en) 2021-06-21

Family

ID=67105244

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170173992A KR102268017B1 (en) 2017-12-18 2017-12-18 A method of cabac decoding based on an application specific processor and an apparatus therefor

Country Status (1)

Country Link
KR (1) KR102268017B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090296806A1 (en) * 2008-06-02 2009-12-03 Mediatek Inc. Cabac encoder and cabac encoding method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090296806A1 (en) * 2008-06-02 2009-12-03 Mediatek Inc. Cabac encoder and cabac encoding method

Also Published As

Publication number Publication date
KR20190072873A (en) 2019-06-26

Similar Documents

Publication Publication Date Title
CN103918273B (en) It is determined that the method for the binary code word for conversion coefficient
KR100924907B1 (en) Improved variable length decoder
US7804903B2 (en) Hardware-based CABAC decoder
CN103931197B (en) It is determined that the method for the binary code word for conversion coefficient
EP2815574B1 (en) Metadata assisted video decoding
US10523973B2 (en) Multiple transcode engine systems and methods
US10652541B2 (en) Method and device for encoding video data
US20180199058A1 (en) Video encoding and decoding method and device
CN105027560A (en) Method of determining binary codewords for transform coefficients
US20140334541A1 (en) Video compression device
TW201406161A (en) Improving decoder performance through quantization control
US9813739B2 (en) Backward adaptation apparatus for applying backward adaptation to probability table at end of processing of frame and related backward adaptation method
US9055182B2 (en) Image coding apparatus, image coding method, and program
US11431978B2 (en) Video decoding method and video decoding device for improving decoding efficiency
KR102268017B1 (en) A method of cabac decoding based on an application specific processor and an apparatus therefor
CA2909216C (en) Information processing apparatus, method of controlling the same, program and storage medium
JP2009081726A (en) Entropy coding device, entropy coding method, and computer program
US10735733B2 (en) Method and device for encoding video data
US20170064321A1 (en) System and method for decoding a video digital data stream using a table of range values and probable symbols
WO2023113941A1 (en) Methods and apparatus to encode and decode video using quantization matrices
Choi et al. Design of A Multimedia Bitstream ASIP for Multiple CABAC Standards
US20190124331A1 (en) Selecting encoding options
Wahl et al. Memory-efficient parallelization of JPEG-LS with relaxed context update
Wahl et al. Exploitation of context classification for parallel pixel coding in JPEG-LS
KR20170046279A (en) Decoding apparatus, electronic apparatus and the controlling method thereof

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant