KR101114493B1 - Bitstream processor operating variable length code codec - Google Patents
Bitstream processor operating variable length code codec Download PDFInfo
- Publication number
- KR101114493B1 KR101114493B1 KR1020080131861A KR20080131861A KR101114493B1 KR 101114493 B1 KR101114493 B1 KR 101114493B1 KR 1020080131861 A KR1020080131861 A KR 1020080131861A KR 20080131861 A KR20080131861 A KR 20080131861A KR 101114493 B1 KR101114493 B1 KR 101114493B1
- Authority
- KR
- South Korea
- Prior art keywords
- processor
- run
- bitstream
- zigzag
- level
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
본 발명은 프로세서에 관한 것으로, 더욱 상세하게는 다중표준 가변길이부호 코덱을 처리하는 비트스트림 프로세서에 관한 것이다.
본 발명에 따른 비트스트림 프로세서는 비트스트림을 구문처리하여 런 값과 레벨 값을 출력하는 신택스 프로세서; 복수의 지그재그 스캔 순서들을 저장하는 지그재그 테이블; 및 상기 런 값과 레벨 값을 입력받아 런레벨 디코딩을 실행하고, 상기 복수의 지그재그 스캔 순서들 중 상기 비트스트림의 코덱에 해당하는 지그재그 순서에 따라 상기 실행 결과를 저장하는 런레벨 프로세서를 포함하고, 상기 신택스 프로세서는 새로운 지그재그 스캔 순서를 상기 지그재그 테이블에 저장한다. 따라서, 본 발명에 따른 비트스트림 프로세서는 하드와이어드 로직으로 구현된 런레벨 프로세서를 포함하여 성능을 향상시키고, 복수의 지그재그 스캔 순서를 저장하는 테이블을 제어하는 신택스 프로세서를 포함하여 다중 표준 코덱을 지원할 수 있다.
The present invention relates to a processor, and more particularly, to a bitstream processor for processing a multi-standard variable length codec.
A bitstream processor according to the present invention includes a syntax processor that parses a bitstream and outputs a run value and a level value; A zigzag table for storing a plurality of zigzag scan orders; And a run level processor that receives the run value and the level value, executes run level decoding, and stores the execution result according to a zigzag sequence corresponding to the codec of the bitstream among the plurality of zigzag scan sequences. The processor stores the new zigzag scan order in the zigzag table. Accordingly, the bitstream processor according to the present invention may include a runlevel processor implemented in hardwired logic to improve performance and include a syntax processor that controls a table storing a plurality of zigzag scan sequences, and may support multiple standard codecs. .
Description
본 발명은 프로세서에 관한 것으로, 더욱 상세하게는 다중표준 가변길이부호 코덱을 처리하는 비트스트림 프로세서에 관한 것이다.The present invention relates to a processor, and more particularly, to a bitstream processor for processing a multi-standard variable length codec.
본 발명은 지식경제부 및 정보통신연구진흥원의 IT원천기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호 : 2006-S-006-03, 과제명 : 유비쿼터스 단말용 부품 모듈].The present invention is derived from a study conducted as part of the IT source technology development project of the Ministry of Knowledge Economy and the Ministry of Information and Telecommunications Research and Development [Task management number: 2006-S-006-03, task name: ubiquitous terminal component module].
다양한 압축표준에서 사용되는 가변길이부호의 인코딩과 디코딩을 위한 코덱의 구현에는 마이크로프로세서를 사용한 프로그래밍 방법과 하드와이어드 로직(hardwired logic)으로 구현하는 방법이 있다. 마이크로프로세서를 사용한 프로그래밍 방식은 프로그램의 구현에 따라 다양한 표준의 가변길이부호를 처리할 수 있다. 그러나 프로그래밍 방법은 하드와이어드 로직으로 구현하는 방법에 비하여 하나의 부호를 처리하는데 다수의 클럭 사이클이 필요하므로 효율이 떨어진다. Codec implementations for encoding and decoding variable length codes used in various compression standards include a programming method using a microprocessor and a hardwired logic. Programming using a microprocessor can handle variable length codes of various standards, depending on the implementation of the program. However, programming is less efficient than hardwired logic because it requires multiple clock cycles to process a single code.
또한 가변길이 부호 중 런레벨 코딩(Run Level Coding)은 전체 화소 개수의 고정크기의 정보를 처리하는 부분과 보다 적은 수의 가변개수의 정보를 처리한다. 런레벨 코딩과 엔트로피 코딩(entropy coding)을 같이 처리하는 비트스트림 프로세서(bitstream processor)의 경우 런레벨 코딩이 화소 처리 속도에 맞추어 동작한다. 따라서, 보다 빠른 클럭과 성능을 가진 프로세서가 사용되어야 한다. In addition, run level coding among variable length codes processes a part of processing fixed size information of the total number of pixels and a smaller number of variable information. In the case of a bitstream processor that processes runlevel coding and entropy coding together, runlevel coding operates at a pixel processing speed. Therefore, processors with faster clocks and performance should be used.
한편 하드와이어드 로직은 유상 상태 머신(FSM:Finite State Machine)과 같은 고정된 설계를 통해 한가지 기능에 최적화 되도록 설계된다. 하드와이어드 로직은 소비전력이나 부호처리성능 면에서 유리하지만 한 가지 표준에 맞추어 설계되므로 다양한 표준을 처리하기에는 적합하지가 않다.Hardwired logic, on the other hand, is designed to be optimized for one function through a fixed design such as the Finite State Machine (FSM). Hardwired logic is advantageous in terms of power consumption and code processing performance, but it is not designed to handle a variety of standards because it is designed to one standard.
본 발명의 목적은 향상된 성능을 가지는 비트스트림 프로세서를 제공하는 데 있다. It is an object of the present invention to provide a bitstream processor with improved performance.
본 발명의 실시예에 따른 비트스트림 프로세서는 비트스트림을 구문처리하여 런 값과 레벨 값을 출력하는 신택스 프로세서; 복수의 지그재그 스캔 순서들을 저장하는 지그재그 테이블; 및 상기 런 값과 레벨 값을 입력받아 런레벨 디코딩을 실행하고, 상기 복수의 지그재그 스캔 순서들 중 상기 비트스트림의 코덱에 해당하는 지그재그 순서에 따라 상기 실행 결과를 저장하는 런레벨 프로세서를 포함한다. A bitstream processor according to an embodiment of the present invention includes a syntax processor that parses a bitstream and outputs a run value and a level value; A zigzag table for storing a plurality of zigzag scan orders; And a run level processor that receives the run value and the level value, executes run level decoding, and stores the execution result in a zigzag sequence corresponding to the codec of the bitstream among the plurality of zigzag scan sequences.
실시 예로서, 상기 신택스 프로세서는 새로운 지그재그 스캔 순서를 상기 지그재그 테이블에 저장한다. In an embodiment, the syntax processor stores a new zigzag scan order in the zigzag table.
실시 예로서, 상기 런레벨 프로세서는 하드와이어드 로직으로 구현된다. In an embodiment, the runlevel processor is implemented with hardwired logic.
실시 예로서, 상기 신택스 프로세서는 범용의 마이크로프로세서를 포함한다.In an embodiment, the syntax processor includes a general purpose microprocessor.
실시 예로서, 상기 구문처리는, 상기 비트스트림으로부터 0의 개수를 카운트하여 상기 런 값을 생성하고, 0을 제외한 수를 레벨 값으로 출력한다. In an embodiment, the syntax processing generates the run value by counting the number of zeros from the bitstream, and outputs a number except zero as a level value.
실시 예로서, 상기 런 값과 레벨 값을 저장하는 메모리를 더 포함하되, H.264 및 MPEG 4의 경우 상기 런과 레벨은 서로 다른 어드레스 맵을 가진다.The memory device may further include a memory configured to store the run value and the level value. In the case of H.264 and MPEG 4, the run and level may have different address maps.
실시 예로서, MPEG 1-2의 경우 상기 런 값과 레벨 값은 동일한 어드레스 맵을 가진다.In an embodiment, in the case of MPEG 1-2, the run value and the level value have the same address map.
본 발명에 따른 비트스트림 프로세서는 하드와이어드 로직으로 구현된 런레벨 프로세서를 포함하여 성능을 향상시키고, 복수의 지그재그 스캔 순서를 저장하는 테이블을 제어하는 신택스 프로세서를 포함하여 다중 표준 코덱을 지원할 수 있다.The bitstream processor according to the present invention may include a runlevel processor implemented in hardwired logic to improve performance and include a syntax processor that controls a table that stores a plurality of zigzag scan sequences to support multiple standard codecs.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시예를 첨부된 도면을 참조하여 설명한다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described with reference to the accompanying drawings so that those skilled in the art may easily implement the technical idea of the present invention.
도 1은 본 발명의 실시예에 따른 비트스트림 프로세서를 도시한 블록도이다.1 is a block diagram illustrating a bitstream processor according to an embodiment of the present invention.
도 1을 참조하면, 비트스트림 프로세서(100)는 인터럽트 컨트롤러(110), 명령어 디코더(120), pBuf(130), iBuf(140), 런레벨 프로세서(RLP:Run Level Processor ; 150), oBuf(160), 신택스 프로세서(STP:Syntax Processor ; 170), sBuf(180), 지그재그 테이블(Zigzag Table ; 190), 명령어 메모리(Instruction Memory ; 200) 및 데이터 메모리(Data Memory ; 210)을 포함한다. Referring to FIG. 1, the
인터럽트 컨트롤러(110)는 제1 AMBA(Advanced Microcontroller Bus Architecture)을 통해서 ARM(300)에 의하여 제어된다. 인터럽트 컨트롤러(110)는 인터럽트를 제어하여 ARM(300)과 동기를 이룬다. 명령어 디코더(120)는 ARM(300)의 제어에 응답하여 신택스 프로세서(170)를 제어하기 위한 명령어를 디코딩한다. The
pBuf(130)는 매크로 블록 파라미터(Macro Block parameter)를 저장한다. The
iBuf(140)는 디코딩(decoding)된 비트스트림을 저장한다. iBuf 140 stores the decoded bitstream.
런레벨 프로세서(150)은 런/레벨(Run/Level) 코딩(Coding) 및 디코딩(Decoding) 그리고 지그재그 스캐닝(zigzag scanning)을 처리한다. 본 발명의 실시예에 따른 런레벨 프로세서(150)는 하드와이어드 로직으로 구현된다. 그리고, 신택스 프로세서(170)는 마이크로 프로세서로 대체될 수 있다. The
런레벨 프로세서(150)는 하드와이어드 로직으로 구현되므로, 다중 표준 코덱의 지원이 어렵다. 따라서, 신택스 프로세서(170)는 런레벨 프로세서(150)의 지그재그 테이블 메모리를 프로그래밍하여 다중 표준 코덱(Multi-Standard CODEC)을 지원한다. 런레벨 프로세서(150)에 관해서는 도 2 및 도 3을 통하여 상세히 설명된다.Since the
oBuf(160)는 신택스 프로세서(170)에서 디코딩된 런/레벨(run/level) 데이터를 저장한다.oBuf 160 stores run / level data decoded by
신택스 프로세서(170)는 sBuf(180)을 통해서 비트스트림을 입력받고, 입력받 은 비트스트림을 구문처리(Syntax Processing) 한다. 그 결과로, 신택스 프로세서(170)는 런(run)과 레벨(Level) 값을 oBuf(160)에 차례대로 저장한다. 신택스 프로세서(170)는 비트스트림의 부호화 및 복호화 수행한다. 구문처리는 비트스트림으로부터 0의 개수를 카운트하여 런 값을 생성하고, 0을 제외한 수를 레벨 값으로 출력하는 것이다. The
sBuf(180)는 디코딩(decoding)할 비트스트림을 저장한다. The sBuf 180 stores a bitstream to be decoded.
지그재그 테이블(190)는 지그재그 스캔 순서(Zigzag scan ordering)를 저장한다. 명령어 메모리(200)는 비트스트림을 처리하기 위한 명령어(Instruction)을 저장하고, 데이터 메모리(210)는 비트스트림을 저장한다. The zigzag table 190 stores a zigzag scan ordering. The
ARM(300)는 인터럽트 컨트롤러(110)을 제어를 통하여 런레벨 프로세서(150) 및 신택스 프로세서(170)를 제어한다. DMA(400)는 제2 AMBA를 통해서 pBuf(130), iBuf(140) 및 sBuf(180)를 억세스한다.The ARM 300 controls the
바람직한 실시예에 있어서, iBuf(140), pBuf(130), oBuf(160) 및 sBuf(180)는 듀얼 메모리(Dual Memory) 구조를 가진다. iBuf(140), pBuf(130) 및 sBuf(180)는 DMA(400)를 통해서만 억세스할 수 있다.In a preferred embodiment, iBuf 140,
구문 처리와 런레벨 코딩(Run Level Coding) 간의 정보 처리 속도가 다르기 때문에, 하나의 프로세서에서 런레벨 코딩과 구문 처리를 같이 할 경우, 신택스 프로세서의 구문 처리 성능에 부담이 될 수 있다.Because the processing speed of information between syntax processing and run level coding is different, it may be a burden on the syntax processing performance of the syntax processor when run level coding and syntax processing are performed in one processor.
따라서, 본 발명의 실시예에 따른 비트스트림 프로세서(100)는 프로그램가능 (programmable)한 신택스 프로세서와 런레벨 코딩과 지그재그 스캐닝(Zigzag Scanning)에 최적화된 하드와이어드 로직으로 구현된 런레벨 프로세서를 포함한다. 신택스 프로세서와 런레벨 프로세서는 버퍼를 통하여 연결되고, 파이프라인 방식으로 메인 시스템(즉, ARM)과 통신한다. Accordingly, the
도 2는 도 1에 도시된 런레벨 프로세서를 상세히 도시한 블록도이다. FIG. 2 is a detailed block diagram illustrating the runlevel processor illustrated in FIG. 1.
도 2를 참조하면, 본 발명의 실시예에 따른 런레벨 프로세서(115)는 어드레스 카운터(Address Counter ; 151), 컨트롤러(Controller ; 152) 및 제로 카운터(Zero Counter ; 153)를 포함한다. Referring to FIG. 2, the run level processor 115 according to an embodiment of the present invention includes an
어드레스 카운터(151)는 지그재그 테이블(190)을 억세스하기 위한 어드레스를 생성한다. 제로 카운터(153)는 지그재그 스캔 순서로 재배열된 데이터의 제로(zero)값을 읽어 런레벨 코드(run-level code)로 변환하여 oBuf(160)에 쓰거나 읽어낸다. The
컨트롤러(152)는 유한 상태 머신(FSM)에 따라 어드레스 카운터(151), 제로 카운터(153), iBuf(140) 및 oBuf(160)을 제어한다. The
iBuf(140)는 외부에서 접근하는 경우 일반 메모리처럼 직접 접근이 가능하다. 그러나, 런레벨 프로세서(150)가 iBuf(140)를 억세스하는 경우 지그재그 테이블(190)에서 출력된 어드레스와 제로 카운터(153)에서 전달된 데이터를 사용하여 억세스한다. iBuf 140 can be accessed directly like a normal memory when accessed from the outside. However, when the
제2 AMBA를 통하여 16비트씩 전달된 두 개의 데이터는 결합하여 32비트가 된다. iBuf(140)는 32비트 데이터를 저장한다. oBuf(160)는 32비트로 컨캐터네이트(concatenate)된 16비트 제로 런과 16비트 레벨을 저장한다. oBuf(160)의 상위 16비트는 레벨 값을 저장하는 데이터로 사용되고, 하위 16비트는 런 값을 저장한다. oBuf(160)의 어드레스 맵에 관해서는 도 5 및 도 6에서 상세히 설명된다. Two pieces of data transmitted by 16 bits through the second AMBA are combined into 32 bits. iBuf 140 stores 32-bit data. oBuf 160 stores 16-bit zero runs and 16-bit levels concatenated into 32 bits. The upper 16 bits of oBuf 160 are used to store the level value, and the lower 16 bits store the run value. The address map of the
런레벨 프로세서(150)에서 런(Run)은 0의 개수를 의미하고, 레벨(Level)은 0이 아닌 수(즉, 0를 제외한 수)를 의미한다. 예를 들면, 가변 길이 코드가 00004이면, 런은 4이고, 레벨은 4이다. 지그재그 테이블(190)은 화소 순으로 정렬된 iBuf(140)의 값을 지그재그 스캐닝(zigzag scanning) 순서로 읽어내기 위한 어드레스가 저장된다.In the
또한, 데이터 처리 방향은 인코딩(encoding)의 경우 iBuf(140)에서 oBuf(160)이고, 디코딩(decoding)의 경우 oBuf(160)에서 iBuf(140)이다. Also, the data processing direction is
MPEG 1과 MPEG 2 경우 런(run)과 레벨(level)은 함께 묶여 하나의 가변 길이 코드로 변환된다(도 6에 도시). 신택스 프로세서(170)는 하나의 가변 길이 코드를 32 비트 단위로 처리한다. H.264와 MPEG4의 경우 런(run)과 레벨(level)은 다른 가변 길이 코드로 변환된다(도 5에 도시). 이 경우 상위 16 비트는 하위 16 비트로 옮겨지며 상위 16 비트는 모두 0이 된다. In the case of MPEG 1 and MPEG 2, the run and level are grouped together and converted into one variable length code (shown in FIG. 6). The
H.264 경우 이웃 블록들간의 효율적인 예측(prediction)을 하기 위해 4x4 인트라 예측(intra prediction), 8x8 인트라 예측, 16x16 인트라 예측 중에 한 가지 예측 방법이 선택된다. 런레벨 프로세서(150)는 각 예측 방법을 처리 할 수 있도록 적응적인(Adaptive) 지그재그 스캐닝 순서를 제공한다. 즉, 본 발명의 실시예에 따른 런레벨 프로세서(150)는 하드와이어드 로직으로 구현되지만, H.264, MPEG1, MPEG2, MPEG4 등과 같은 멀티 압축 코덱을 지원할 수 있다. 런레벨 프로세서(150) 가 멀티 압축 코덱을 지원하는 방법은 도 3을 통하여 상세히 설명된다. In the case of H.264, one prediction method is selected among 4x4 intra prediction, 8x8 intra prediction, and 16x16 intra prediction in order to perform efficient prediction between neighboring blocks. The
도 3은 도 1에 도시된 비트스트림 프로세서를 상세히 도시한 블록도이다.3 is a block diagram illustrating in detail the bitstream processor illustrated in FIG. 1.
도 3에 도시된 런레벨 프로세서(150)은 도 2에 도시된 런레벨 프로세서(150)를 상세히 도시한 것이다. 따라서, 중복되는 설명은 생략한다. The
도 3을 참조하면, 지그재그 테이블(190)은 입력된 비트스트림의 코덱에 따라 적용될 수 있도록 복수의 지그재그 스캐닝 순서들을 저장한다. 지그재그 테이블(190)은 복수의 지그재그 스캐닝 순서를 저장하기 위하여 제1 내지 제4 지그재그 테이블을 포함한다. iBuf(140)와 oBuf(160)는 각각 두 개의 SRAM을 포함한다. Referring to FIG. 3, the zigzag table 190 stores a plurality of zigzag scanning orders so that they can be applied according to the codec of the input bitstream. The zigzag table 190 includes first to fourth zigzag tables to store a plurality of zigzag scanning orders.
DMA(400)는 AMBA 슬레이브 인터페이스(Slave Interface)를 통하여 iBuf(140)를 억세스한다. 또한, DMA(400)는 제로 카운터(153)을 통하여 oBuf(160)의 어드레스를 억세스한다.The
런레벨 프로세서(150)는 유한 상태 머신(FSM)에 따라 동작하므로, 유연성(Flexibility)을 가지지 못한다. 그러나, 신택스 프로세서(170)은 oBuf(160)에 저장된 데이터의 값과 순서 그리고 지그재그 테이블의 데이터를 제어할 수 있다. 따라서, 본 발명의 실시예에 따른 비트스트림 프로세서(100)는 다중 표준 코덱에 대하여 유연성을 가진다. The
도 4는 도 1에 도시된 oBuf를 도시한 블록도이다.FIG. 4 is a block diagram illustrating the oBuf shown in FIG. 1.
도 4를 참조하면, 본 발명의 실시예에 따른 oBuf(160)는 2개의 16비트 메모리(SRAM)을 포함한다. 신택스 프로세서(170)는 런 값과 레벨 값을 디코딩하여 oBuf(160)에 저장할때, H.264, MPEG4 경우 런 값을 먼저 디코딩하여 obuf(160)에 저장하고, 그 다음 레벨 값을 디코딩하여 obuf(160)에 저장한다. 반면 MPEG1,2 경우 신택스 프로세서(170)는 런 값과 레벨 값을 동시에 디코딩한다. Referring to FIG. 4, an
따라서, 본 발명의 실시예에 따른 oBuf(160)는 H.264, MPEG1, MPEG2 및 MPEG4 모두 적용할 수 있도록 16비트로 이루어진 2개의 메모리로 구성된다. 본 발명의 실시예에 따른 메모리는 SRAM을 예시하였으나, DRAM 또는 불휘발성 메모리로도 구현될 수 있다. Accordingly, the
도 5는 본 발명의 실시예에 따른 oBuf의 어드레스 맵(Address Map)이고, 도 6은 본 발명의 또 다른 실시예에 따른 oBuf의 어드레스 맵이다. 5 is an address map of an oBuf according to an embodiment of the present invention, and FIG. 6 is an address map of an oBuf according to another embodiment of the present invention.
도 5에 도시된 바와 같이, H.264와 MPEG4 경우 런과 레벨은 서로 다른 어드레스를 가지고 있어야 한다. 도 6에 도시된 바와 같이, MPEG 1,2 경우 런과 레벨은 같은 어드레스를 가지고 있어야 한다.As shown in Fig. 5, in H.264 and MPEG4, the run and level should have different addresses. As shown in FIG. 6, in case of MPEG 1,2, runs and levels should have the same address.
도 7은 도 1에 도시된 지그재그 테이블과 런레벨 프로세서의 연결을 도시한 블록도이다. FIG. 7 is a block diagram illustrating a connection between a zigzag table and a run level processor illustrated in FIG. 1.
도 7을 참조하면, 신택스 프로세서(170)는 제1 멀티플렉서(MUX1)와 디멀티플렉서(DEMUX)를 통하여 지그재그 테이블(190)을 프로그램할 수 있다. 런레벨 프로세서(150)는 비트스트림의 코덱에 따라 제2 멀티플렉서(MUX2)를 통하여 지그재그 테이블(190)에 저장된 지그재그 스캔 순서들 중 하나를 참조한다. Referring to FIG. 7, the
H.264 경우 화면 구성에 맞는 최적화된 예측으로 비트스트림을 최소한으로 줄이기 위해 4x4 인트라 예측, 16x16 인트라 예측 등이 사용된다. In the case of H.264, 4x4 intra prediction and 16x16 intra prediction are used to reduce the bitstream to the minimum with optimized prediction for the screen configuration.
런레벨 프로세서(150)은 유한 상태 머신(FSM)으로 이루어진다. 또한, 런레벨 프로세서(150)은 하드와이어드 타입으로 이루어져 여러가지 예측(prediction) 타입에 대한 적응성이 떨어진다. 지그재그 테이블(190)은 제1 내지 제4 지그재그 테이블을 포함한다. 따라서, 제1 내지 제4 지그재그 테이블 각각은 여러 가지 예측 타입에 적용될 수 있다. The
본 발명의 실시예에 따른 비트스트림 프로세서는 구문(syntax) 처리를 수행하는 마이크로프로세서(microprocessor) 형식의 신택스 프로세서와 런레벨 코딩을 담당하는 하드와이어드 타입의 런레벨 프로세서를 포함한다. 즉, 본 발명은 신택스 프로세서와 런레벨 프로세서를 독립적으로 동작되므로, 신택스 프로세서의 동작 주파수를 낮춰 전력 소모를 감소시킨다. 또한, 본 발명은 하드와이어드 타입의 런레벨 프로세서를 사용하여 칩사이즈를 감소시키고, 생산 단가를 낮출 수 있다. A bitstream processor according to an embodiment of the present invention includes a microprocessor-type syntax processor that performs syntax processing and a hard-wired runlevel processor that is responsible for run level coding. That is, the present invention operates the syntax processor and the run-level processor independently, thereby lowering the operating frequency of the syntax processor to reduce power consumption. In addition, the present invention can reduce the chip size and lower the production cost by using a hard-wired run level processor.
또한 런레벨 프로세서는 복수의 지그재그 테이블들을 포함하고, 신택스 프로세서는 레지스터를 통하여 상기 지그재그 테이블을 제어함으로써, 다중 압축 표준을 지원할 수 있다. The runlevel processor also includes a plurality of zigzag tables, and the syntax processor can support multiple compression standards by controlling the zigzag table through registers.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.As described above, optimal embodiments have been disclosed in the drawings and the specification. Although specific terms have been used herein, they are used only for the purpose of describing the present invention and are not intended to limit the scope of the invention as defined in the claims or the claims. Therefore, those skilled in the art will understand that various modifications and equivalent other embodiments are possible from this. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.
도 1은 본 발명의 실시예에 따른 비트스트림 프로세서를 도시한 블록도이다.1 is a block diagram illustrating a bitstream processor according to an embodiment of the present invention.
도 2는 도 1에 도시된 런레벨 프로세서를 상세히 도시한 블록도이다. FIG. 2 is a detailed block diagram illustrating the runlevel processor illustrated in FIG. 1.
도 3은 도 1에 도시된 비트스트림 프로세서를 상세히 도시한 블록도이다.3 is a block diagram illustrating in detail the bitstream processor illustrated in FIG. 1.
도 4는 도 1에 도시되 oBuf를 도시한 블록도이다.4 is a block diagram illustrating oBuf shown in FIG. 1.
도 5는 H.264와 MPEG 4의 경우 본 발명의 실시예에 따른 oBuf의 어드레스 맵이다. 5 is an address map of oBuf according to an embodiment of the present invention in the case of H.264 and MPEG 4.
도 6은 MPEG 1 및 MPEG 2의 경우 본 발명의 또 다른 실시예에 따른 oBuf의 어드레스 맵이다. 6 is an address map of oBuf according to another embodiment of the present invention in the case of MPEG 1 and MPEG 2.
도 7은 도 1에 도시된 지그재그 테이블과 런레벨 프로세서의 연결을 도시한 블록도이다. FIG. 7 is a block diagram illustrating a connection between a zigzag table and a run level processor illustrated in FIG. 1.
* 도면의 주요 부분에 대한 부호 설명 *Description of the Related Art [0002]
110; 인터럽트 컨트롤러 120; 명령어 디코더110; Interrupt
130; pBuf 140; iBuf130;
150; 런레벨 프로세서 160; oBuf150;
170; 신택스 프로세서 180; sBuf170;
190; 지그재그 테이블 200; 명령어 메모리190; Zigzag table 200; Instruction memory
Claims (7)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080131861A KR101114493B1 (en) | 2008-12-23 | 2008-12-23 | Bitstream processor operating variable length code codec |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080131861A KR101114493B1 (en) | 2008-12-23 | 2008-12-23 | Bitstream processor operating variable length code codec |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100073242A KR20100073242A (en) | 2010-07-01 |
KR101114493B1 true KR101114493B1 (en) | 2012-02-27 |
Family
ID=42636226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080131861A KR101114493B1 (en) | 2008-12-23 | 2008-12-23 | Bitstream processor operating variable length code codec |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101114493B1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100450844B1 (en) | 2002-02-21 | 2004-10-01 | (주)씨앤에스 테크놀로지 | Video CODEC processor architecture |
-
2008
- 2008-12-23 KR KR1020080131861A patent/KR101114493B1/en not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100450844B1 (en) | 2002-02-21 | 2004-10-01 | (주)씨앤에스 테크놀로지 | Video CODEC processor architecture |
Also Published As
Publication number | Publication date |
---|---|
KR20100073242A (en) | 2010-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9351003B2 (en) | Context re-mapping in CABAC encoder | |
US9392292B2 (en) | Parallel encoding of bypass binary symbols in CABAC encoder | |
US7443318B2 (en) | High speed context memory implementation for H.264 | |
Zhou et al. | A 530 Mpixels/s 4096x2160@ 60fps H. 264/AVC high profile video decoder chip | |
US20080267293A1 (en) | Video Encoder Software Architecture for VLIW Cores | |
JP3558840B2 (en) | Apparatus and method for detecting bit stream signal format in signal processing system | |
CN104253992B (en) | Picture decoding apparatus | |
CN101179720B (en) | Video decoding method | |
Kammoun et al. | Design exploration of efficient implementation on SoC heterogeneous platform: HEVC intra prediction application | |
US8625677B2 (en) | Apparatus processing video stream | |
CN107844321B (en) | MCU processing system | |
JP2005209108A (en) | Microcomputer with external memory | |
KR101114493B1 (en) | Bitstream processor operating variable length code codec | |
KR102035759B1 (en) | Multi-threaded texture decoding | |
Zhou et al. | A hardware decoder architecture for general string matching technique | |
US7590295B2 (en) | Semiconductor device and an image processor | |
JP4563300B2 (en) | Table device, variable length encoding / decoding device, variable length encoding device, and variable length decoding device | |
JP2004246889A (en) | Computer system for incorporating sequential buffer and improving dsp data access performance, and access method therefor | |
KR100824174B1 (en) | Encoding/decoding device | |
JP2004326228A (en) | Parallel arithmetic processor | |
Chang et al. | An efficient embedded bitstream parsing processor for MPEG-4 video decoding system | |
US7801224B1 (en) | Optimizing decoders on a hardware platform that supports video acceleration | |
KR100450844B1 (en) | Video CODEC processor architecture | |
US7733122B2 (en) | Semiconductor device | |
AU728882B2 (en) | Compression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20150126 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |