KR100561464B1 - 가변장 부호화 장치 및 방법 - Google Patents

가변장 부호화 장치 및 방법 Download PDF

Info

Publication number
KR100561464B1
KR100561464B1 KR1020030052394A KR20030052394A KR100561464B1 KR 100561464 B1 KR100561464 B1 KR 100561464B1 KR 1020030052394 A KR1020030052394 A KR 1020030052394A KR 20030052394 A KR20030052394 A KR 20030052394A KR 100561464 B1 KR100561464 B1 KR 100561464B1
Authority
KR
South Korea
Prior art keywords
variable length
information
length code
output buffer
bit
Prior art date
Application number
KR1020030052394A
Other languages
English (en)
Other versions
KR20050013819A (ko
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 KR1020030052394A priority Critical patent/KR100561464B1/ko
Priority to US10/901,302 priority patent/US7218257B2/en
Publication of KR20050013819A publication Critical patent/KR20050013819A/ko
Application granted granted Critical
Publication of KR100561464B1 publication Critical patent/KR100561464B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • 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/1887Methods 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 a variable length codeword
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

가변장 부호화 장치 및 방법이 개시된다. 본 발명에 따른 가변장 부호화 장치는, 소정 방식의 가변장 부호화를 위해 미리 프로그램된 소프트웨어 모듈을 구비하여, 입력 심벌 데이터를 상기 소프트웨어 모듈을 이용하여 가변장 부호화하여 가변장 코드 정보를 생성하는 중앙처리부; 및 상기 중앙처리부로부터 상기 가변장 코드 정보를 입력받아 비트스트림을 생성하는 별도의 프로세서인 비트스트림 프로세서를 포함하는 것을 특징으로 한다. 이에 의해, 소프트웨어 다운로드를 통해 VLC 테이블의 변경 또는 추가가 용이해져 새로운 비디오 데이터 부호화 규격을 용이하게 지원할 수 있으며 비트스트림 프로세서를 별도의 전용 프로세서로 구현함으로써 가변장 부호화를 소프트웨어 모듈로 구현함으로 인한 중앙처리장치의 부하를 감소시키고 고속 데이터 처리가 가능하다.

Description

가변장 부호화 장치 및 방법{Apparatus and method for variable length coding}
도 1은 종래 비디오 데이터 부호화기의 블록도,
도 2는 본 발명에 따른 가변장 부호화 장치의 블록도의 일 실시예,
도 3은 본 발명에 따른 가변장 부호화 방법의 흐름도의 일 실시예,
도 4는 가변장 부호화를 위한 VLC 테이블의 일 실시예,
도 5는 본 발명에 따른 중앙처리부와 비트스트림 프로세서간의 통신을 위한 데이터 구조를 나타내는 도면,
도 6은 도 5에 도시된 데이터 구조에 따른 가변장 코드 정보의 실시예들을 나타내는 도면,
도 7은 비트스트림 프로세서의 블록도의 일 실시예,
도 8은 출력 버퍼의 제어동작을 설명하기 위한 도면이다.
본 발명은 비디오 데이터 부호화에 관한 것으로, 보다 구체적으로, 가변장 부호화 장치 및 방법에 관한 것이다.
비디오 데이터 부호화에 관한 대표적인 국제 표준으로 MPEG-1, MPEG-2, MPEG-4 및 H.26X 등이 있다. 이들 표준들은 비디오 데이터를 효과적으로 압축하기 위해 비디오 데이터의 공간적 상관 관계를 이용한 이산여현변환(DCT: Discrete Cosine Transform), 시간적 상관 관계를 이용한 움직임 추정/움직임 보상(Motion Estimation/Motion Compensation) 및 데이터의 발생 확률을 이용한 가변장 부호화(VLC: Variable Length Coding) 등의 부호화 기술을 사용한다.
도 1은 종래 비디오 데이터 부호화기의 블록도를 나타낸다. 도 1을 참조하면 비디오 데이터 부호화기는 이산여현변환기(DCT)(1), 양자화기(Q)(2), 가변장 부호화기(VLC)(3), 역양자화기(IQ)(4), 역이산여현변환기(IDCT)(5), 움직임 보상기(MC)(6), 움직임 추정기(ME)(7) 및 Frame memory(8)를 포함한다.
도 1에 도시한 바와 같은 비디오 데이터 부호화기는 칩(chip) 제조 회사에 의해 전용 칩 형태로 제작되거나 컴퓨터 등의 장치에 의해 구현되도록 소프트웨어로 구현된다. 최근에는 CPU(Central Processing Unit)가 내장된 시스템 온 칩(System On Chip) 형태의 비디오 데이터 부호화기가 개발되고 있다. 즉, 전체 비디오 데이터 부호화 과정의 각각의 부호화 과정의 특성에 따라 어떤 부호화 과정은 전용 하드웨어 모듈로 구현하고 어떤 부호화 과정은 내장된 CPU에 의해 구동되는 소프트웨어 모듈로 구현하여, 하드웨어와 소프트웨어가 통합된 형태의 칩으로 비디오 데이터 부호화기를 구현한다.
가변장 부호화를 위한 모듈은 가변장 부호화의 특성상 소프트웨어 모듈로 구현하여 유연성을 가지도록 하는 것이 바람직하다. 왜냐하면, 새로운 비디오 데이터 부호화 규격을 지원하기 위해 가변장 부호화시 사용되는 VLC 테이블의 내용을 일부 변경하거나 새로운 VLC 테이블을 추가할 필요가 생기는 경우, VLC 테이블의 변경, 갱신 또는 추가가 용이해야 하기 때문이다. 가변장 부호화를 위한 모듈을 하드웨어 모듈로 구현한다면 VLC 테이블을 변경, 갱신 또는 추가하기 위해서는 하드웨어 모듈 자체를 새로이 설계해야 하므로 시간, 노력 및 비용의 소모가 크다.
반면, 가변장 부호화기 전체를 소프트웨어 모듈로 구현한다면 소프트웨어 모듈을 구동하는 CPU 성능이 떨어지는 경우에는 실시간 데이터 처리가 불가능한 경우가 발생할 수 있는 문제가 있다.
따라서, 본 발명이 이루고자 하는 기술적 과제는 가변장 부호화를 위한 VLC 테이블의 변경 또는 추가 등의 경우에 유연하게 대응할 수 있고 고속 데이터 처리가 가능한 가변장 부호화 장치 및 방법을 제공하는 것이다.
상기 기술적 과제를 해결하기 위해 본 발명에 따라, 소정 방식의 가변장 부호화를 위해 미리 프로그램된 소프트웨어 모듈을 구비하여, 입력 심벌 데이터를 상기 소프트웨어 모듈을 이용하여 가변장 부호화하여 가변장 코드 정보를 생성하는 중앙처리부; 및 상기 중앙처리부로부터 상기 가변장 코드 정보를 입력받아 비트스트림을 생성하는 별도의 프로세서인 비트스트림 프로세서를 포함하는 것을 특징으로 하는 가변장 부호화 장치가 제공된다.
상기 중앙처리부는 하나의 가변장 코드의 비트 길이 또는 상기 비트스트림 프로세서에 소정 명령을 지시하는 명령어를 나타내는 제1 정보와 가변장 코드의 비트 값을 나타내는 제2 정보를 포함하는 가변장 코드 정보를 생성하는 것이 바람직하다.
상기 비트스트림 프로세서는 상기 중앙처리부로부터 가변장 코드 정보를 입력받아, 상기 입력 가변장 코드 정보를 해석하는 데이터 해석부; 출력 버퍼; 및 상기 출력 버퍼를 제어하는 출력 버퍼 제어부를 포함하고, 상기 데이터 해석부는 상기 입력 가변장 코드 정보에 포함된 제1 정보 및 제2 정보를 각각 상기 출력 버퍼 제어부 및 상기 출력 버퍼로 출력하고, 상기 출력 버퍼 제어부는 입력된 제1 정보에 따라 상기 출력 버퍼를 제어하는 것이 바람직하다.
상기 기술적 과제는 본 발명에 따라, 소정 방식의 가변장 부호화를 위해 미리 프로그램된 소프트웨어 모듈을 구비한 중앙처리부가 상기 소프트웨어 모듈을 이용하여 입력 심벌 데이터를 가변장 부호화하여 가변장 코드 정보를 생성하는 단계; 및 하드웨어로 별도로 구현된 비트스트림 프로세서가 상기 가변장 코드 정보를 입력받아 비트스트림을 생성하는 단계를 포함하는 것을 특징으로 하는 가변장 부호화 방법이 제공된다.
상기 가변장 코드 정보를 생성하는 단계는 하나의 가변장 코드의 비트 길이 또는 상기 비트스트림 프로세서에 소정 명령을 지시하는 명령어를 나타내는 제1 정보와 가변장 코드의 비트 값을 나타내는 제2 정보를 포함하는 가변장 코드 정보를 생성하는 단계인 것이 바람직하다.
상기 비트스트림 생성 단계는 상기 중앙처리부로부터 가변장 코드 정보를 입 력받아, 상기 입력 가변장 코드 정보에 포함된 제1 정보 및 제2 정보를 각각 출력 버퍼 제어부 및 출력 버퍼로 출력하는 단계; 및 상기 출력 버퍼 제어부가 입력받은 상기 제1 정보에 따라 상기 출력 버퍼를 제어하는 단계를 포함하는 것이 바람직하다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
도 2는 본 발명에 따른 가변장 부호화 장치의 블록도의 일 실시예를 나타낸다. 도 2를 참조하면, 가변장 부호화 장치는 중앙처리부(CPU)(31) 및 비트 스트림 프로세서(33)를 포함한다.
중앙처리부(31)는 런-랭스 부호화(RLC: Run-Length Coding)를 위한 소프트웨어 모듈인 RLC 모듈(311), 가변장 부호화(VLC)를 위한 소프트웨어 모듈인 VLC 모듈(313) 및 비트스트림 프로세서(33)와의 통신을 담당하는 소프트웨어인 통신 모듈(315)을 구비한다. 소정의 VLC 테이블을 이용한 가변장 부호화는 중앙처리부(31)에 미리 프로그램된 소프트웨어 모듈을 통해 구현된다. 중앙처리부(31)는 VLC 모듈(313)을 이용하여 가변장 코드 정보를 생성하여 비트스트림 프로세서(33)로 송신한다. 중앙처리부(31)는 양자화기(도시되지 않음)에서 런-랭스 부호화를 수행하는 경우에는 RLC 모듈(311)을 구비하지 아니할 수도 있다.
본 발명에 의한 가변장 부호화 장치는 도 1에 도시한 장치와 유사한 구조의 비디오 데이터 부호화기(도시되지 않음) 내에 포함된다. 중앙처리부(31)는 본 발명 에 따른 가변장 부호화를 수행할 뿐 아니라 전체 비디오 데이터 부호화기의 동작을 제어하거나 오디오 데이터의 부호화도 수행한다.
비트 스트림 프로세서(33)는 중앙처리부(31)로부터 소정 데이터 통신 방식에 따라 송신된 가변장 코드 정보를 수신하여 비트스트림을 생성하여 출력한다. 가변장 부호화는 중앙처리부(31)에 미리 프로그램된 소프트웨어 모듈을 통해 구현되나, 비트 스트림 프로세서는 비트 스트림을 생성하기 위해 일반적으로 많은 계산을 수행하고 어떠한 종류의 비디오 데이터 부호화 규격에서도 동일하게 이용될 수 있는 범용적인 장치인 점을 고려하여 본 발명에서는 비트스트림 프로세서(33)를 소프트웨어 모듈로 구현하지 아니하고 중앙처리부(31)와 별도의 전용 프로세서로 구현한다.
도 7은 비트스트림 프로세서(33)의 블록도의 일 실시예를 나타낸다. 중앙처리부(31)로부터 도 5 및 6에 도시된 바와 같은 데이터 구조를 가지는 가변장 코드 정보를 수신한 비트스트림 프로세서(33)는 수신한 가변장 코드 정보를 처리하여 비트스트림을 생성하기 위해 도 7에 도시한 바와 같은 구성을 가지는 것이 바람직하다.
도 7을 참조하면, 비트스트림 프로세서(33)는 중앙처리부(31)로부터 가변장 코드 정보를 입력받아, 입력 가변장 코드 정보에 포함된 제1 정보 및 제2 정보를 각각 출력 버퍼 제어부(335) 및 출력 버퍼(333)로 출력하는 데이터 해석부(331), 소정 길이를 가지는 출력 버퍼(333) 및 데이터 해석부(331)로부터 입력된 제1 정보에 따라 출력 버퍼(333)를 제어하는 출력 버퍼 제어부(335)를 포함한다.
전술한 본 발명에 따른 가변장 부호화 장치의 구조를 기초로 본 발명에 따른 가변장 부호화 방법의 일 실시예를 설명한다.
도 3은 본 발명에 따른 가변장 부호화 방법의 흐름도의 일 실시예를 나타낸다.
중앙처리부(31)는 DCT 계수를 입력받는다(제10 단계). 가변장 부호화를 위해 중앙처리부(31)로 입력되는 DCT 계수는 대개 양자화된 계수이다. 또한, 가변장 부호화를 위해 중앙처리부(31)로 입력되는 데이터는 DCT 계수뿐 아니라 움직임 벡터가 될 수도 있다.
중앙처리부(31)는 RLC 모듈(311)을 구동하여 연속적으로 입력되는 DCT 계수를 대상으로 런-랭스 부호화를 수행한다(제11 단계). 런-랭스 부호화는 DCT 계수를 연속적으로 입력받아 런(run)과 레벨(level)을 구하는 과정이다. 런이라 함은 연속되는 0의 개수를 말하고 레벨은 0이 아닌 DCT 계수의 값을 말한다. 런과 레벨을 통틀어 심벌(symbol)이라 한다.
전술한 바와 같이, 양자화기(도시되지 않음)에서 런-랭스 부호화를 수행하는 경우, 즉 중앙처리부(31)로 런과 레벨이 입력되는 경우에는 중앙처리부(31)는 제11 단계를 수행할 필요가 없다.
또한, 중앙처리부(31)로 움직임 벡터가 입력되는 경우에는 중앙처리부(31)는 제11 단계에서 런-랭스 부호화 대신 다음과 같은 작업을 수행한다. 중앙처리부(31)로 입력되는 움직임 벡터 데이터들을 바탕으로 MPEG-1, MPEG-2, MPEG-4, 및 H.26X 등 표준으로 정해져 있는 움직임 벡터 예측 방법에 따라 현재 부호화하고자 하는 움직임 벡터의 예측 값을 구한 후, 예측된 움직임 벡터와 현재 부호화하고자 하는 움직임 벡터와의 차이값을 구한다.
런-랭스 부호화 후 중앙처리부(31)는 VLC 모듈(313)을 구동하여 가변장 부호화를 수행한다(제12 단계).
도 4는 가변장 부호화를 위한 VLC 테이블의 일 예를 나타낸다. 도 4에 도시된 VLC 테이블은 MPEG-2 표준에 따른 인트라 블록의 DCT 계수의 가변장 부호화시 사용되는 테이블이다.
중앙처리부(31)는 미리 프로그램된 VLC 모듈(313)을 구동하여 입력되는 런과 레벨 또는 움직임 벡터의 차이값에 따라 대응하는 가변장 코드가 무엇인지 결정한다. 예컨대, 런이 1이고 레벨이 1인 경우 가변장 코드는 "011s"가 된다. 여기서 "s"는 레벨의 부호를 나타낸다. 즉 "s"가 1이면 레벨이 양수이고 0이면 음수를 나타낸다.
가변장 부호화 후, 중앙처리부(31)는 통신 모듈(315)을 구동하여 미리 정해진 데이터 구조에 따라 비트스트림 프로세서(33)로 전송할 데이터를 생성하여 비트스트림 프로세서(33)로 전송한다(제13 단계).
본 실시예에서는 중앙처리부(31)와 비트스트림 프로세서(33)와의 효율적인 통신을 위해 별도의 데이터 구조를 정의한다.
도 5는 본 발명에 따른 중앙처리부(31)와 비트스트림 프로세서(33)간의 통신을 위한 데이터 구조를 나타내는 도면이다. 도 5를 참조하면 중앙처리부(31)는 비트스트림 프로세서(33)로 32비트 길이의 가변장 코드 정보를 전송한다. 가변장 코 드 정보는 하나의 가변장 코드의 비트 길이 또는 비트스트림 프로세서(33)에 소정 명령을 지시하는 명령어를 나타내는 제1 정보와, 제1 정보에 포함된 가변장 코드의 비트 길이를 가지는 가변장 코드의 비트 값을 나타내는 제2 정보를 포함한다. 도 5를 참조하면 제1 정보는 5비트, 제2 정보는 나머지 27비트가 할당된다.
제12 단계에서 입력된 런과 레벨 또는 움직임 벡터의 차이값에 대응하는 가변장 코드가 결정된 후, 가변장 코드 그 자체가 비트스트림 프로세서(33)로 전송되는 것이 아니라 결정된 가변장 코드의 비트 값과 그 비트 길이가 32비트의 가변장 코드 정보에 포함되어 비트스트림 프로세서(33)로 전송된다. 만약 가변장 코드가 "0000 111s"인 경우, 상기 가변장 코드의 비트 값은 "111s"이고 그 비트 길이는 "8"이 된다.
도 6은 도 5에 도시된 데이터 구조에 따른 가변장 코드 정보의 실시예들을 나타낸 도면이다. 제1 정보는 5비트가 할당되어 0에서 31까지의 수를 표현할 수 있다. 따라서 도 6에 도시된 실시예는 제1 정보의 값에 따라 다양한 정보를 표현한다.
도 6의 (a)는 제1 정보를 구성하는 선두 5 비트가 모두 0인 경우, 즉 제1 정보가 정수 0이면, 32비트의 가변장 코드 정보가 하나의 가변장 코드의 비트 값을 의미하는 경우를 나타낸다. 스타트 코드와 같은 특정 코드의 경우, 하위 몇 개의 비트를 제외한 나머지 모든 비트가 0의 값을 가지므로 가변장 코드의 길이를 나타낼 필요 없이 32 비트 가변장 코드 정보가 하나의 가변장 코드의 비트 값을 나타내도록 한다.
도 6의 (b)는 제1 정보를 구성하는 5 비트가 1에서 27까지의 정수의 값을 가지면 제1 정보는 하나의 가변장 코드의 길이임을 의미하고, 제2 정보는 제1 정보에 대응하는 가변장 코드의 비트 값을 의미하는 경우를 나타낸다.
도 6의 (c)는 제1 정보를 구성하는 5 비트가 28에서 31까지의 정수의 값을 가지면 제1 정보는 비트스트림 프로세서(33)에 소정 명령을 지시하는 명령어임을 의미한다. 제2 정보는 아무런 정보가 없을 수도 있고 임의의 비트 값을 포함할 수도 있으나 비트스트림 프로세서(33)는 제1 정보가 명령어임을 확인하면 제2 정보는 무시한다.
명령어로는 바이트 정렬(byte align) 또는 플러쉬(flush) 등이 있다. 바이트 정렬 명령을 수신한 출력 버퍼 제어부(335)는 출력 버퍼(333)에 채워진 데이터를 8비트 단위로 정렬한다. 예컨대, 출력 버퍼(333)에 "0011 01"이라는 데이터가 저장되어 있는 상태에서 바이트 정렬 명령이 수신되면 출력 버퍼 제어부(335)는 출력 버퍼(333)의 데이터를 "0011 0100"으로 1 바이트로 정렬한다.
플러쉬 명령은 출력 버퍼(333)가 데이터로 모두 채워지지 않은 경우에도 출력(333)에 저장된 데이터를 모두 출력할 것을 명령한다.
도 5 및 6에 도시된 바와 같은 데이터 구조를 가지는 가변장 코드 정보를 중앙처리부(31)로부터 수신한 비트스트림 프로세서(33)의 데이터 해석부(331)는 수신한 데이터를 해석한다(제14 단계). 다시 말하면, 데이터 해석부(331)는 중앙처리부(31)로부터 입력받은 32비트 길이의 가변장 코드 정보를 해석하여, 가변장 코드 정보에 포함된 제1 정보 및 제2 정보를 각각 출력 버퍼 제어부(335) 및 출 력 버퍼(333)로 출력한다.
출력 버퍼 제어부(335)는 데이터 해석부(331)로부터 입력된 제1 정보에 따라 출력 버퍼(333)를 제어한다(제15 단계).
도 8은 출력 버퍼(333)의 제어동작을 설명하기 위한 도면이다. 출력 버퍼(333)가 32비트 길이의 버퍼이다. 출력 버퍼(333)는 초기에 32비트 모두 0으로 세팅된다. 만약, 비트 값이 "111"이고 비트 길이가 "5"인 정보가 포함된 가변장 코드 정보를 데이터 해석부(331)가 최초로 수신한 경우, 출력 버퍼(333)로는 "111"의 비트 값이 입력되고, 출력 버퍼 제어부(335)로는 비트 길이가 "5"라는 정보가 입력된다.
출력 버퍼 제어부(335)는 비트 길이 "5"라는 정보에 따라 출력 버퍼(333)를 제어하여 도 8의 (a)에 도시한 바와 같이 b0 내지 b4의 위치에 "00111"이라는 비트 값이 저장되도록 한다. b5부터 b31까지의 위치에는 여전히 초기값 0이 저장된다.
데이터 해석부(331)가 두 번째로 비트 값이 "11"이고 비트 길이가 "4"인 정보가 포함된 가변장 코드 정보를 수신한 경우, 출력 버퍼(333)로는 "11"의 비트 값이 입력되고, 출력 버퍼 제어부(335)로는 비트 길이가 "4"라는 정보가 입력된다.
출력 버퍼 제어부(335)는 비트 길이 "4"라는 정보에 따라 출력 버퍼(333)를 제어하여 도 8의 (b)에 도시한 바와 같이 b0 내지 b4의 위치에 이미 저장된 "00111"의 다음 위치인 b5 내지 b8의 위치에 "0011"이라는 비트 값이 저장되도록 한다. b9부터 b31까지의 위치에는 초기값 0이 변함없이 저장된다.
출력 버퍼(333)에 32비트의 데이터가 채워지면 비트스트림을 출력한다(제16 단계).
전술한 바와 같이, 본 발명에 따르면 가변장 부호화를 소프트웨어 모듈에 의해 수행함으로써 가변장 부호화시 사용되는 VLC 테이블을 변경하거나 새로운 VLC 테이블을 추가할 필요가 생기는 경우, 소프트웨어 다운로드를 통해 VLC 테이블의 변경 또는 추가가 용이해지며 따라서 새로운 비디오 데이터 부호화 규격을 지원하는 것도 용이하다. 또한 비트스트림 프로세서를 별도의 전용 프로세서로 구현함으로써 가변장 부호화를 소프트웨어 모듈로 구현함으로 인한 중앙처리장치의 부하를 감소시키고 고속 데이터 처리가 가능하도록 한다.

Claims (12)

  1. 소정 방식의 가변장 부호화를 위해 미리 프로그램된 소프트웨어 모듈을 구비하여, 입력 심벌 데이터를 상기 소프트웨어 모듈을 이용하여 가변장 부호화하여 가변장 코드 정보를 생성하는 중앙처리부; 및
    상기 중앙처리부로부터 상기 가변장 코드 정보를 입력받아 비트스트림을 생성하는 별도의 프로세서인 비트스트림 프로세서를 포함하며,
    상기 중앙처리부는 하나의 가변장 코드의 비트 길이 또는 상기 비트스트림 프로세서에 소정 명령을 지시하는 명령어를 나타내는 제1 정보와 가변장 코드의 비트 값을 나타내는 제2 정보를 포함하는 가변장 코드 정보를 생성하는 것을 특징으로 하는 가변장 부호화 장치.
  2. 삭제
  3. 제1 항에 있어서,
    상기 제1 정보의 비트 값이 모두 0이면, 상기 가변장 코드 정보를 구성하는 전체 비트가 가변장 코드의 데이터 비트 값을 나타내는 것을 특징으로 하는 가변장 부호화 장치.
  4. 제1 항에 있어서,
    상기 제1 정보의 비트 값에 따라, 상기 제1 정보가 하나의 가변장 코드의 비트 길이를 나타내거나 상기 명령어를 상기 비트 길이 정보는 상기 비트스트림 프로세서에 소정 명령을 지시하는 명령어인 것을 특징으로 하는 가변장 부호화 장치.
  5. 제1 항에 있어서,
    상기 비트스트림 프로세서는
    상기 중앙처리부로부터 가변장 코드 정보를 입력받아, 상기 입력 가변장 코드 정보를 해석하는 데이터 해석부;
    출력 버퍼; 및
    상기 출력 버퍼를 제어하는 출력 버퍼 제어부를 포함하고,
    상기 데이터 해석부는 상기 입력 가변장 코드 정보에 포함된 제1 정보 및 제2 정보를 각각 상기 출력 버퍼 제어부 및 상기 출력 버퍼로 출력하고, 상기 출력 버퍼 제어부는 입력된 제1 정보에 따라 상기 출력 버퍼를 제어하는 것을 특징으로 하는 가변장 부호화 장치.
  6. 제1 항에 있어서,
    상기 중앙처리부에 프로그램된 상기 가변장 부호화를 위한 소프트웨어 모듈은 갱신 또는 변경이 가능한 것을 특징으로 하는 가변장 부호화 장치.
  7. 소정 방식의 가변장 부호화를 위해 미리 프로그램된 소프트웨어 모듈을 구비한 중앙처리부가 상기 소프트웨어 모듈을 이용하여 입력 심벌 데이터를 가변장 부호화하여 가변장 코드 정보를 생성하는 단계; 및
    하드웨어로 별도로 구현된 비트스트림 프로세서가 상기 가변장 코드 정보를 입력받아 비트스트림을 생성하는 단계를 포함하며,
    상기 가변장 코드 정보를 생성하는 단계는,
    하나의 가변장 코드의 비트 길이 또는 상기 비트스트림 프로세서에 소정 명령을 지시하는 명령어를 나타내는 제1 정보와 가변장 코드의 비트 값을 나타내는 제2 정보를 포함하는 가변장 코드 정보를 생성하는 단계인 것을 특징으로 하는 가변장 부호화 방법.
  8. 삭제
  9. 제7 항에 있어서,
    상기 제1 정보의 비트 값이 모두 0이면, 상기 가변장 코드 정보를 구성하는 전체 비트가 가변장 코드의 데이터 비트 값을 나타내는 것을 특징으로 하는 가변장 부호화 방법.
  10. 제7 항에 있어서,
    상기 제1 정보의 비트 값에 따라, 상기 제1 정보가 하나의 가변장 코드의 비트 길이를 나타내거나 상기 명령어를 상기 비트 길이 정보는 상기 비트스트림 프로세서에 소정 명령을 지시하는 명령어인 것을 특징으로 하는 가변장 부호화 방법.
  11. 제7 항에 있어서,
    상기 비트스트림 생성 단계는
    상기 중앙처리부로부터 가변장 코드 정보를 입력받아, 상기 입력 가변장 코드 정보에 포함된 제1 정보 및 제2 정보를 각각 출력 버퍼 제어부 및 출력 버퍼로 출력하는 단계; 및
    상기 출력 버퍼 제어부가 입력받은 상기 제1 정보에 따라 상기 출력 버퍼를 제어하는 단계를 포함하는 것을 특징으로 하는 가변장 부호화 방법.
  12. 제7 항에 있어서,
    상기 중앙처리부에 프로그램된 상기 가변장 부호화를 위한 소프트웨어 모듈은 갱신 또는 변경이 가능한 것을 특징으로 하는 가변장 부호화 방법.
KR1020030052394A 2003-07-29 2003-07-29 가변장 부호화 장치 및 방법 KR100561464B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020030052394A KR100561464B1 (ko) 2003-07-29 2003-07-29 가변장 부호화 장치 및 방법
US10/901,302 US7218257B2 (en) 2003-07-29 2004-07-29 Apparatus and method for variable length coding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030052394A KR100561464B1 (ko) 2003-07-29 2003-07-29 가변장 부호화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20050013819A KR20050013819A (ko) 2005-02-05
KR100561464B1 true KR100561464B1 (ko) 2006-03-16

Family

ID=34132112

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030052394A KR100561464B1 (ko) 2003-07-29 2003-07-29 가변장 부호화 장치 및 방법

Country Status (2)

Country Link
US (1) US7218257B2 (ko)
KR (1) KR100561464B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100736096B1 (ko) * 2005-12-12 2007-07-06 삼성전자주식회사 비디오 신호를 그룹별로 인코딩 및 디코딩하는 방법 및장치

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3675211A (en) * 1970-09-08 1972-07-04 Ibm Data compaction using modified variable-length coding
JP3085024B2 (ja) * 1993-06-01 2000-09-04 松下電器産業株式会社 画像再圧縮器及び画像記録装置
US5831557A (en) * 1996-06-11 1998-11-03 Apple Computer, Inc. Variable length code decoding according to optimum cache storage requirements
CN1238837C (zh) * 1996-10-15 2006-01-25 松下电器产业株式会社 声音编码方法和编码装置
US5821886A (en) * 1996-10-18 1998-10-13 Samsung Electronics Company, Ltd. Variable length code detection in a signal processing system
US5781134A (en) * 1996-10-18 1998-07-14 Samsung Electronics Company, Ltd. System for variable length code data stream position arrangement
US5821887A (en) * 1996-11-12 1998-10-13 Intel Corporation Method and apparatus for decoding variable length codes
JP2870515B2 (ja) * 1996-12-27 1999-03-17 日本電気株式会社 可変長符号化装置
US6211801B1 (en) * 1998-04-17 2001-04-03 Netergy Networks Data communication arrangement having variable length coding and method therefor
CN1306697A (zh) * 1998-06-25 2001-08-01 赤道技术公司 可变长度编码与解码的处理电路和处理方法
US6275239B1 (en) * 1998-08-20 2001-08-14 Silicon Graphics, Inc. Media coprocessor with graphics video and audio tasks partitioned by time division multiplexing
US6147629A (en) * 1998-10-15 2000-11-14 Intel Corporation Method and apparatus for variable length decoding
US6445314B1 (en) * 2000-03-01 2002-09-03 Cisco Technology Inc. System and method for the decoding of variable length codes
KR20020003063A (ko) 2000-06-30 2002-01-10 박종섭 디코딩 속도를 개선한 가변 길이 디코딩 장치
JP2003179929A (ja) * 2001-12-10 2003-06-27 Oki Electric Ind Co Ltd 画像復号化装置

Also Published As

Publication number Publication date
US20050035888A1 (en) 2005-02-17
KR20050013819A (ko) 2005-02-05
US7218257B2 (en) 2007-05-15

Similar Documents

Publication Publication Date Title
US5428396A (en) Variable length coding/decoding method for motion vectors
JP4677901B2 (ja) 算術符号の復号器または符号化器と逆2値化変換器または2値化変換器との間に中間バッファが挿入された復号装置または符号化装置
US8879627B2 (en) Moving image encoding apparatus, moving image decoding apparatus, moving image encoding method, moving image decoding method, moving image encoding program, moving image decoding program, and moving image encoding/ decoding system
US7480333B2 (en) Method and system for transcoding video data
US8102911B2 (en) Picture coding device
KR20030014716A (ko) 미디어 프로세서에서 mpeg2 디코딩의 동적인 복잡도예측 및 조절
US20100172593A1 (en) Image encoding apparatus, image encoding method, and image encoding program
US20090196344A1 (en) Method and apparatus for transcoding between hybrid video codec bitstreams
KR20070006445A (ko) 하이브리드 엔트로피 부호화, 복호화 방법 및 장치
WO2006033227A1 (ja) 画像符号化装置
KR100561464B1 (ko) 가변장 부호화 장치 및 방법
US20010053182A1 (en) Picture encoding format converting apparatus
KR20040007694A (ko) 미세 입자 스켈링 가능한 비디오에 대한 움직임 보상
JPH07135660A (ja) 動きベクトル符号化装置
KR100413868B1 (ko) 저장된비트스트림을사용하여온-스크린디스플레이메시지를발생시키는장치및방법
WO2008079330A1 (en) Video compression with complexity throttling
JPH03255792A (ja) 画質制御装置
US9485509B2 (en) Image compression device, image compression method, image decompression device, and image decompression method
JP4847423B2 (ja) 動画像符号化装置、および、コンピュータプログラム
JP2005236584A (ja) 動画像情報変換符号化装置
KR100286220B1 (ko) 영상 부호화기의 적응 양자화 장치 및 그 방법
KR20040093485A (ko) 양자화기 스케일 선택을 사용한 화상 코딩
JP2003116006A (ja) 画像符号化方法及び装置
KR100205375B1 (ko) 동영상 부호화 장치
JPH1023433A (ja) 目標符号量計算装置及び符号量制御装置

Legal Events

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

Payment date: 20130227

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140227

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee