KR101024913B1 - Vld 버퍼 관리 장치 - Google Patents

Vld 버퍼 관리 장치 Download PDF

Info

Publication number
KR101024913B1
KR101024913B1 KR1020040001688A KR20040001688A KR101024913B1 KR 101024913 B1 KR101024913 B1 KR 101024913B1 KR 1020040001688 A KR1020040001688 A KR 1020040001688A KR 20040001688 A KR20040001688 A KR 20040001688A KR 101024913 B1 KR101024913 B1 KR 101024913B1
Authority
KR
South Korea
Prior art keywords
buffer
bitstream
vld
bit
read
Prior art date
Application number
KR1020040001688A
Other languages
English (en)
Other versions
KR20050073330A (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 KR1020040001688A priority Critical patent/KR101024913B1/ko
Priority to US11/030,085 priority patent/US7916792B2/en
Publication of KR20050073330A publication Critical patent/KR20050073330A/ko
Application granted granted Critical
Publication of KR101024913B1 publication Critical patent/KR101024913B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/247Telephone sets including user guidance or feature selection means facilitating their use
    • 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
    • H04N19/423Methods 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 characterised by memory arrangements
    • 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/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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • H04N21/4382Demodulation or channel decoding, e.g. QPSK demodulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer

Landscapes

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

Abstract

본 발명은 디지털 TV 수신기에서 비디오 디코딩을 위해 비트스트림을 비트 단위 길이로 읽어 오기 위한 이중 구조의 32비트 VLD 버퍼 관리 장치에 관한 것이다. 특히 본 발명은 32비트 단위의 버퍼를 두 개 사용하여 첫 번째 버퍼는 바이트 단위로 입력되는 비트스트림을 직접 저장하고, 두 번째 버퍼는 첫번째 버퍼로부터 비트스트림을 읽어 저장한 후 VLD에서 요청하는 비트 길이만큼 비트스트림을 비트 단위로 읽어 VLD로 출력한다. 따라서, 본 발명은 32비트 단위의 데이터를 한 번에 처리 할 수 있는 효과가 있다. 또한 VLD 버퍼가 이중 구조를 갖기 때문에 VLD 버퍼를 억세스하는 회수를 줄임으로써, VLD를 위해 중복되는 메모리 억세스 과정을 간소화할 수 있다.
버퍼, VLC, VLD

Description

VLD 버퍼 관리 장치{Apparatus for managing VLD buffer}
도 1은 일반적인 1바이트 VLD 버퍼 관리 방법의 예를 보인 도면
도 2는 본 발명에 따른 VLD 버퍼 관리 장치의 일 실시예를 보인 도면
도 3은 도 2의 제 1, 제 2 버퍼를 사용한 버퍼 관리 방법의 예를 보인 도면
도 4는 도 2의 제 1, 제 2 버퍼가 비어있을 때의 버퍼 관리 예를 보인 도면
도 5는 도 2의 VLD부가 요구하는 비트의 길이가 제 2 버퍼에 저장된 비트스트림의 길이보다 작은 경우의 관리 예를 보인 도면
도 6a, 도 6b는 도 2의 VLD부가 요구하는 비트의 길이가 제 2 버퍼에 저장된 비트스트림보다 긴 경우의 관리 예를 보인 도면
도 7a, 도 7b는 도 2의 제 2 버퍼를 업데이트 하는 예를 보인 도면
도 8은 도 2의 제 1 버퍼를 업데이트하는 예를 보인 도면
도면의 주요부분에 대한 부호의 설명
100 : 버퍼 제어부 210 : 제 1 버퍼
220 : 제 2 버퍼 300 : VLD부
본 발명은 디지털 TV 수신기에서 비디오 디코딩을 위해 비트스트림을 처리하는 VLD 버퍼 관리에 관한 것으로서, 특히 비트스트림을 비트 단위 길이로 읽어 오기 위한 이중 구조의 32비트 VLD 버퍼 관리 장치에 관한 것이다.
일반적으로 비디오 데이터 압축은 멀티미디어 응용분야에 있어서 하나의 중요한 기술이다. 가변 길이 부호화(Variable Length Coding ; VLC)는 JPEC(Joint Photographic Coding Experts Group), MPEG(Moving Picture Experts Group), 기타 화상 데이터 압축 표준과 같은 데이터 압축 표준으로 현재까지 널리 사용되어온 가장 인기 있는 데이터 압축 방법이다. 그리고, 가변 길이 복호화는 가변 길이 부호화된 데이터를 복호화하는 기술이다.
예를 들어, 상기 VLC는 디지털 방송을 송신하는 방송국에서 데이터를 압축할 때 적용되고, 가변 길이 복호화(VLD)는 디지털 TV 수신기에서 상기 VLC된 데이터를 복호화할 때 적용된다. 즉, 디지털 TV 수신기로 수신된 데이터는 채널 복조를 통해 비트스트림 형태로 변환되고, 이 중 비디오 비트스트림은 비디오 디코더로, 오디오 스트림은 오디오 디코더로 출력된다. 상기 비디오 디코더에 가변 길이 복호기(VLD)가 포함된다.
이때, 상기 VLC는 자주 나오는 값은 적은 수의 비트로, 드물게 나오는 값은 많은 수의 비트로 표시하여 전체 비트 수를 줄인다. 그리고, 가변 길이 부호화시 데이터는 데이터 심볼에 따라 서로 다른 비트를 할당받게 된다.
따라서, 디지털 TV 수신기의 VLD에서 상기 VLC된 데이터를 복호하려면 데이터 심볼에 해당하는 코드워드를 찾아내야 한다. 이를 위해 부호화된 비트스트림 상 의 데이터는 비트 단위로 읽어야 한다.
따라서, 상기 VLD 전단에는 VLD 버퍼가 구비되며, 입력되는 비트스트림을 바이트 단위로 읽어 상기 VLD 버퍼에서 비트 단위로 바꾼 후 VLD로 출력하는 메모리 관리가 필요하게 된다.
종래에는 입력되는 비트스트림을 바이트 단위로 저장한 후 비트 단위로 출력하기 위하여 8비트 단위 즉, 한 VLD 메모리 버퍼를 사용하였다.
이 방식은 비트스트림으로부터 필요한 데이터를 바이트 단위로 입력받아 처리하기 때문에 VLD 버퍼 관리가 비교적 쉽다. 하지만 비트 단위의 값을 처리할 때 한 바이트 메모리 경계 부분에서 오버헤드가 커지는 문제점이 있다. 즉 상기 VLD에서 다음에 읽어 올 비트들이 상기 1바이트 버퍼 내에 모두 없는 경우, 상기 1바이트 버퍼 내의 데이터들을 일단 VLD로 출력한 후 다시 새로운 비트스트림을 입력받아 저장한 후 이어 상기 VLD로 출력해야 하므로 오버헤드가 커지게 된다.
도 1은 종래의 1 바이트 버퍼를 사용해 바이트 단위로 비트스트림을 읽어 와 비트 단위로 출력하는 방식을 도식화한 것이다. 여기서 totbitoffset은 VLD 버퍼로 입력되는 비트스트림 상의 읽을 포인터를 비트 단위로 표기한 것이다. 상기 totbitoffset은 상기 비트스트림을 처음부터 비트 단위로 카운트함으로써 얻을 수 있다.
그리고, 1 바이트 단위의 버퍼를 사용해 바이트 단위로 비트스트림을 읽어오기 위해서는 비트스트림 상에서 바이트 단위의 포인터가 필요한데 그것이 byteoffset이다. 상기 byteoffset은 totbitoffset이 포함된 바이트의 포인터이며, 상기 totbitoffset 값을 8로 나눈 몫에 해당된다. 그리고, bitoffset은 byteoffset이 위치한 바이트 내에서 카운트되는 비트 단위의 totbitoffset의 위치를 나타내며, 상기 totbitoffset 값을 8로 나눈 나머지에 해당된다. 동시에 상기 bitoffset은 그 바이트 상에서 앞으로 읽을 수 있는 비트의 길이를 나타낸다. 즉, 도 1에서와 같이 bitoffset 값이 4를 가리키고 있으면 상기 VLD 버퍼에서 앞의 4비트는 이미 처리된 데이터이고, 나머지 4비트는 앞으로 처리할 데이터를 의미한다.
이때, 상기 VLD에서 읽으려는 비트의 길이가 bitoffset보다 크게 되면 이를 위한 예외 처리가 필요하다. 하지만 상기 VLD 버퍼가 8비트 단위이므로 이를 처리하기 위해서는 매번 VLD 버퍼를 억세스해야 하기 때문에 처리 속도를 저하시키는 문제점이 있다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 비트스트림을 바이트 단위로 읽어 와 비트 단위로 출력하기 위한 버퍼를 이중 구조의 32비트 메모리 버퍼로 구성함으로써, 긴 비트 단위의 값들도 처리 속도 저하없이 VLD로 출력하는 VLD 버퍼 관리 장치를 제공함에 있다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 VLD 버퍼 관리 장치는, 각각 N 바이트 크기를 갖는 제 1, 제 2 버퍼 및 입력되는 비트스트림을 바이트 단위로 읽어 상기 제 1 버퍼에 저장하고, 상기 제 1 버퍼에 저장된 비트스트림을 제 2 버퍼에 저장하며, VLD부에서 요청하는 비트 길이의 비트스트림을 비트 단위로 제 2 버퍼에서 읽어 VLD부로 출력하는 버퍼 제어부를 포함하여 구성되는 것을 특징으로 한다. 여기서, N은 2보다 큰 수일 수 있다.
상기 제 1, 제 2 버퍼는 각각 4바이트 크기를 갖는 것을 특징으로 한다.
상기 버퍼 제어부는 톱 포인터로 상기 제 1, 제 2 버퍼에서 다음에 읽을 비트 위치를 지시하고, 읽은 비트 길이만큼 톱 포인터를 증가시키는 것을 특징으로 한다.
상기 버퍼 제어부는 제 2 버퍼의 톱 포인터가 기 설정된 임계값 포인터보다 크면 상기 제 2 버퍼의 톱 포인터 이후의 비트스트림을 좌측으로 쉬프트시킨 후 상기 제 1 버퍼로부터 비트스트림을 읽어 제 2 버퍼에 저장하는 것을 특징으로 한다.
상기 버퍼 제어부는 상기 VLD부에서 요구하는 비트의 길이가 제 2 버퍼의 톱 포인터 이후의 비트스트림의 길이보다 큰 경우에는, 제 2 버퍼의 톱 포인터부터 비트스트림을 읽어 VLD부로 출력하고, 이어 제 1 버퍼에 저장된 비트스트림을 제 2 버퍼로 옮겨온 후 남은 비트 길이만큼 제 2 버퍼에서 비트스트림을 읽어 상기 VLD부로 출력하고 톱 포인터를 증가시키는 것을 특징으로 한다.
본 발명의 다른 목적, 특징 및 잇점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예의 구성과 그 작용을 설명하며, 도면에 도시되고 또 이것에 의해서 설명되는 본 발명의 구성과 작용은 적어도 하나의 실시예로서 설명되는 것이며, 이것에 의해서 상기한 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다.
도 2는 본 발명에 따른 VLD 버퍼 관리 장치의 구성 블록도로서, 버퍼 제어부(100)와 이중 구조의 32비트 버퍼(210,220)로 구성된다.
상기 버퍼 제어부(100)는 제 1, 제 2 버퍼(210,222)의 비트스트림 입/출력을 관리하기 위한 것이다.
즉, 상기 버퍼 제어부(100)는 입력되는 비트스트림을 바이트 단위로 읽어 제 1 버퍼(210)에 저장하고, 제 1 버퍼(210)에 저장된 비트스트림을 제 2 버퍼(220)로 이동시킨다. 그리고 VLD부(300)의 요청에 따라 제 2 버퍼(220)에 저장된 비트스트림을 비트 단위로 읽어 VLD부(300)로 출력한다.
도 3은 상기 버퍼 제어부(100)에서 제 1, 제 2 버퍼(210,220)의 비트스트림 저장과 출력을 제어하는 예를 보인 도면이다.
상기 제 1, 제 2 버퍼(210,220)는 각각 32비트 즉, 4바이트 크기를 갖는다. 제 2 버퍼(220)는 주로 VLD부(300)에서 직접 억세스하는 버퍼이다. 그리고, 제 1 버퍼(210)는 버퍼 제어부(100)에 의해 4바이트 단위로 비트스트림을 저장하고, 이를 제 2 버퍼(220)가 사용할 수 있도록 준비해 주는 버퍼이다. 이때, 상기 제 1, 제 2 버퍼(210,220)에는 각각 톱(top) 포인터를 두어 각 버퍼가 처리할 데이터를 얼마만큼 갖고 있는지, 어디서부터 읽어야 할지를 나타낸다.
도 3에서 제 1 버퍼(210)의 톱 포인트는 16을 가리키고 있다. 즉, 제 1 버퍼(210)의 앞의 2바이트는 즉, 16비트 위치 앞까지는 이미 처리된 데이터를 의미한다. 다시 말해, 제 2 버퍼(220)로 이미 출력된 데이터임을 의미한다. 따라서, 다음에 비트스트림을 읽어 제 2 버퍼(220)에 저장할 때는 톱 포인트부터 읽어 저장하 면 된다.
그리고, 제 2 버퍼(220)의 톱 포인터는 8을 가리키고 있다. 이는 상기 제 2 버퍼(220)의 8비트 위치 앞까지는 이미 처리된 데이터 즉, VLD부(300)에서 읽어 간 데이터임을 의미한다. 따라서, 다음에는 제 2 버퍼(220)의 톱 포인트 위치부터 필요한 비트 수만큼 비트스트림을 읽어 VLD부(300)로 출력하면 된다.
상기 제 2 버퍼(220)의 임계값(threshold) 포인터는 제 2 버퍼(220)가 다음에 사용될 비트 수를 여유 있게 하기 위한 포인터이다. 즉, 상기 버퍼 제어부(100)는 제 2 버퍼(220)에서 톱 포인터가 임계값 포인터보다 커지게 되면 제 1 버퍼(210)로부터 데이터를 읽어 와 제 2 버퍼(220)에 저장한다.
그리고, 도 3에서 비트스트림 상의 totbyteoffset은 제 1 버퍼(210)에서 현재 읽어야 할 비트스트림의 바이트 위치를 나타낸다.
상기 제 2 버퍼(220)는 전술한 바와 같이 VLD부(300)에서 비트스트림을 가변 길이 복호화할 수 있도록 제 1 버퍼(210)를 통해 비트스트림을 입력받아 저장한 후 상기 VLD부(300)로 출력하는 버퍼이다. 그러므로 상기 제 2 버퍼(220)는 VLD부(300)가 요구하는 비트 길이의 값을 VLD부(300)가 읽을 수 있게 해주는 역할을 한다.
다음은 VLD부(300)가 요구하는 비트 길이를 읽기 위해 제 1, 제 2 버퍼(210,220)를 관리하는 방법을 설명한다.
1) 제 1, 제 2 버퍼(210,220)가 모두 비어있는 초기 상태
제 1, 제 2 버퍼(210,220)가 비어있는 상태에서 VLD부(300)로부터 비트스트림 요청이 오면 버퍼 관리부(100)는 도 4와 같이 입력되는 비트스트림 중 제 1 버퍼(210)의 용량 만큼인 4바이트 길이의 비트스트림을 읽어 제 1 버퍼(210)에 저장한다. 이때, 비트스트림 상의 totbyteoffset은 4만큼 증가한다.
그리고, 상기 제 1 버퍼(210)에 저장된 비트스트림 중 2바이트의 비트스트림을 읽어 제 2 버퍼(220)에 저장한다. 이때, 제 1 버퍼(210)의 톱 포인터는 16을 가리키게 된다.
여기서, 상기 제 1 버퍼(210)에서 비트스트림을 읽어오는 단위로 설계자에 의해 달라질 수 있다. 예를 들어, 1바이트 단위로 읽어올 수도 있고, 본 발명에서와 같이 2바이트 단위로 읽어올 수도 있다. 또는 3바이트 단위로 읽어올 수도 있다. 특히 제 2 버퍼(220)가 비어있는 경우에는 제 1 버퍼(210)에서 4바이트를 모두 읽어 와 저장할 수도 있다.
2) VLD부(300)에서 요구하는 비트의 길이(reqlen)가 제 2 버퍼(220)에 저장된 비트스트림의 길이보다 작은 경우
이때는 도 5와 같이 VLD부(300)가 요구하는 비트 길이만큼 제 2 버퍼(220)에서 비트스트림을 읽어 VLD부(300)로 출력하면 된다.
만약, 데이터를 단순히 보여주는 경우는 톱 포인터를 증가시키지 않는다. 하지만 비트스트림을 읽고 다음 비트스트림을 처리해야하는 상황에서는 톱 포인터를 읽은 비트 길이만큼 증가시켜준다.
3) VLD(300)가 요구하는 비트의 길이가 제 2 버퍼(220)에 저장된 비트스트림의 길이보다 큰 경우
이 경우는 두 가지로 나누어 생각할 수 있다.
우선 단순히 비트의 값을 보여주는 경우를 먼저 생각해보자. 이때에는 톱 포인터를 증가시키지 않는 경우이므로 도 6a와 같이 제 2 버퍼(220)의 톱 포인터부터 비트스트림을 읽고, 이어 제 1 버퍼(210)의 최상위 비트(MSB)에 해당하는 톱 포인터부터 비트스트림을 붙여 읽으면 된다.
또 다른 하나의 경우는 톱 포인터를 증가시키는 경우 즉, 제 2 버퍼(220)의 비트스트림을 읽고 다음 비트스트림을 처리해야 하는 경우이다. 이때는 도 6b와 같이 제 2 버퍼(220)의 톱 포인터부터 비트스트림을 읽어 VLD부(300)로 출력한다. 그리고나서 제 1 버퍼(210)에 저장된 비트스트림을 제 2 버퍼(220)로 옮겨 와 남은 비트만큼 읽어 VLD부(300)로 출력한 후에 톱 포인터를 증가시켜준다.
4) 제 2 버퍼(220)를 업데이트 하는 경우
도 7a와 같이 제 2 버퍼(220)에 설정된 임계값 포인터보다 톱 포인터 값이 커지면 제 2 버퍼(220)를 업데이트한다. 즉, 제 1 버퍼(210)로부터 2바이트씩 비트스트림을 읽어 와 제 2 버퍼(220)에 저장한다. 이때 제 2 버퍼(220)에 남아있는 데이터는 도 7b와 같이 2바이트 좌측으로 쉬프트시킨 후 상기 제 1 버퍼(210)에서 읽은 데이터를 이어 저장한다.
그리고 도 8과 같이 4바이트 단위로 비트스트림을 읽어 와 제 1 버퍼(210)를 업데이트를 한다. 이때, 제 1 버퍼(210)는 제 2 버퍼(220)에 2바이트씩 업로드해야 하므로 제 1 버퍼(210)의 톱 포인터는 2바이트 단위로 움직이게 된다.
한편, 본 발명에서는 제 1, 제 2 버퍼(210,220)의 크기를 32비트인 것을 실시예로 하여 설명하고 있다. 하지만 상기 제 1, 제 2 버퍼(210,220)는 상기된 실시예로 한정하지 않는다. 즉, 제 1, 제 2 버퍼(210,220)는 각각 2바이트나 3바이트 크기를 갖을 수도 있고, 5바이트 이상의 크기를 갖을 수도 있다.
그리고 본 발명에서 사용되는 용어(terminology)들은 본 발명에서의 기능을 고려하여 정의 내려진 용어들로써 이는 당분야에 종사하는 기술자의 의도 또는 관례 등에 따라 달라질 수 있으므로 그 정의는 본 발명의 전반에 걸친 내용을 토대로 내려져야 할 것이다.
또한, 본 발명에서는 본 발명의 바람직한 실시예를 통해 본 발명을 설명했으므로 본 발명의 기술적인 난이도 측면을 고려할 때, 당분야에 통상적인 기술을 가진 사람이면 용이하게 본 발명에 대한 또 다른 실시예와 다른 변형을 가할 수 있다. 따라서 상술한 설명에서 사상을 인용한 실시예와 변형은 모두 본 발명의 청구 범위에 모두 귀속됨은 명백하다.
이상에서와 같이 본 발명에 따른 VLD 버퍼 관리 장치에 의하면, 32비트 단위의 버퍼를 두 개 사용하여 첫 번째 버퍼는 바이트 단위로 입력되는 비트스트림을 직접 저장하고, 두 번째 버퍼는 첫번째 버퍼로부터 비트스트림을 읽어 저장한 후 VLD에서 요청하는 비트 길이만큼 비트스트림을 비트 단위로 읽어 VLD로 출력한다.
따라서, 본 발명은 32비트 단위의 데이터를 한 번에 처리 할 수 있는 효과가 있다. 또한 VLD 버퍼가 이중 구조를 갖기 때문에 VLD 버퍼를 억세스하는 회수를 줄임으로써, VLD를 위해 중복되는 메모리 억세스 과정을 간소화할 수 있다. 그리고, 처리 비트 길이가 32비트 단위이기 때문에 기존의 방식에서 처리 할 수 없던 긴 길이의 비트 수를 한번에 처리할 수 있어 VLD 처리 시간을 단축할 수 있다.
또한 본 발명은 다양한 길이의 가변 길이 복호화기(VLD)에 응용되기에 적합하다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술 사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다.
따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정해져야 한다.

Claims (6)

  1. 송신측에서 가변길이 부호화되어 수신되는 데이터를 비트스트림 형태로 복조한후 VLD부에서 가변길이 복호화하는 디지털 TV에서의 VLD 버퍼 관리 장치에 있어서,
    각각 N 바이트 크기를 갖는 제 1, 제 2 버퍼; 및
    입력되는 비트스트림을 바이트 단위로 읽어 상기 제 1 버퍼에 저장하고, 상기 제 1 버퍼에 저장된 비트스트림을 제 2 버퍼에 저장하며, VLD부에서 요청하는 비트 길이의 비트스트림을 비트 단위로 제 2 버퍼에서 읽어 VLD부로 출력하는 버퍼 제어부;를 포함하고,
    상기 버퍼 제어부는,
    톱 포인터로 상기 제 1, 제 2 버퍼에서 다음에 읽을 비트 위치를 지시하고, 읽은 비트 길이만큼 톱 포인터를 증가시키며, 상기 제 2 버퍼의 톱 포인터가 기 설정된 임계값 포인터보다 크면 상기 제 2 버퍼의 톱 포인터 이후의 비트스트림을 좌측으로 쉬프트시킨 후 상기 제 1 버퍼로부터 비트스트림을 읽어 제 2 버퍼에 저장하는 것을 특징으로 하는 VLD 버퍼 관리 장치.
  2. 제 1 항에 있어서,
    상기 제 1, 제 2 버퍼는 각각 4바이트 크기를 갖는 것을 특징으로 하는 VLD 버퍼 관리 장치.
  3. 삭제
  4. 삭제
  5. 제 1 항에 있어서, 상기 버퍼 제어부는
    상기 VLD부에서 요구하는 비트의 길이가 제 2 버퍼의 톱 포인터 이후의 비트스트림의 길이보다 큰 경우에는, 제 2 버퍼의 톱 포인터부터 비트스트림을 읽어 VLD부로 출력하고, 이어 제 1 버퍼에 저장된 비트스트림을 제 2 버퍼로 옮겨온 후 남은 비트 길이만큼 제 2 버퍼에서 비트스트림을 읽어 상기 VLD부로 출력하고 톱 포인터를 증가시키는 것을 특징으로 하는 VLD 버퍼 관리 장치.
  6. 제 1항에 있어서,
    상기 N은 2보다 큰 수인 것을 특징으로 하는 VLD 버퍼 관리 장치.
KR1020040001688A 2004-01-09 2004-01-09 Vld 버퍼 관리 장치 KR101024913B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020040001688A KR101024913B1 (ko) 2004-01-09 2004-01-09 Vld 버퍼 관리 장치
US11/030,085 US7916792B2 (en) 2004-01-09 2005-01-07 Apparatus and method for VLD buffer management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040001688A KR101024913B1 (ko) 2004-01-09 2004-01-09 Vld 버퍼 관리 장치

Publications (2)

Publication Number Publication Date
KR20050073330A KR20050073330A (ko) 2005-07-13
KR101024913B1 true KR101024913B1 (ko) 2011-03-31

Family

ID=34738021

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040001688A KR101024913B1 (ko) 2004-01-09 2004-01-09 Vld 버퍼 관리 장치

Country Status (2)

Country Link
US (1) US7916792B2 (ko)
KR (1) KR101024913B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5173849B2 (ja) * 2007-05-22 2013-04-03 パナソニック株式会社 動画像復号化装置及び動画像復号化方法
JP4882926B2 (ja) * 2007-08-31 2012-02-22 セイコーエプソン株式会社 画像データ処理装置および画像データ処理方法
KR101130271B1 (ko) * 2010-07-26 2012-03-26 인하대학교 산학협력단 H.264/avc를 위한 내용기반 가변길이 부호화기
CN102244901B (zh) * 2011-07-15 2013-12-18 长沙理工大学 传感器网络中链式多跳的双缓冲并行快速传输方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623311A (en) * 1994-10-28 1997-04-22 Matsushita Electric Corporation Of America MPEG video decoder having a high bandwidth memory
US6324306B1 (en) * 1998-01-27 2001-11-27 Oki Electric Industry Co., Ltd. Variable length code decoder and moving picture decoder having variable length code decoder

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5343195A (en) * 1992-12-18 1994-08-30 Thomson Consumer Electronics, Inc. Variable length codeword decoding apparatus
US5491480A (en) * 1994-05-25 1996-02-13 Industrial Technology Research Institute Variable length decoder using serial and parallel processing
EP0710033A3 (en) * 1994-10-28 1999-06-09 Matsushita Electric Industrial Co., Ltd. MPEG video decoder having a high bandwidth memory
US6573846B1 (en) * 2001-12-31 2003-06-03 Apple Computer, Inc. Method and apparatus for variable length decoding and encoding of video streams

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623311A (en) * 1994-10-28 1997-04-22 Matsushita Electric Corporation Of America MPEG video decoder having a high bandwidth memory
US6324306B1 (en) * 1998-01-27 2001-11-27 Oki Electric Industry Co., Ltd. Variable length code decoder and moving picture decoder having variable length code decoder

Also Published As

Publication number Publication date
KR20050073330A (ko) 2005-07-13
US7916792B2 (en) 2011-03-29
US20050152455A1 (en) 2005-07-14

Similar Documents

Publication Publication Date Title
US11705924B2 (en) Low-latency encoding using a bypass sub-stream and an entropy encoded sub-stream
JP4627812B2 (ja) 固定長ブロックの効率的な圧縮および圧縮解除
US6008745A (en) Variable length decoding using lookup tables
US20130044810A1 (en) 2-bin parallel decoder for advanced video processing
GB2293735A (en) Parallel encoding and decoding of data
JP3022784B2 (ja) 高速の可変長復号化装置
GB2321154A (en) Reverse playback of MPEG video
US6285789B1 (en) Variable length code decoder for MPEG
US6781589B2 (en) Apparatus and method for extracting and loading data to/from a buffer
JP3153404B2 (ja) ディジタルビデオ・ビットストリームコーダ
JP2006513673A (ja) 算術符号化方法及び算術符号化装置
US8102919B2 (en) Image coding apparatus and image decoding apparatus
KR101024913B1 (ko) Vld 버퍼 관리 장치
US20050174270A1 (en) Programmable variable length decoder including interface of cpu processor
Ishii et al. Parallel variable length decoding with inverse quantization for software MPEG-2 decoders
WO2009122675A1 (ja) 可変長符号復号化装置及びその方法
KR100944923B1 (ko) 개선된 멀티미디어 디코더를 위한 방법 및 장치
US6298091B1 (en) Method to play audio and video clips through MPEG decoders
KR100987252B1 (ko) 비트스트림 데이터 처리를 위한 인터페이스 장치 및 방법
KR100487411B1 (ko) 가변 길이 디코더
US20100074542A1 (en) Apparatus for decoding context adaptive variable length code and table search method for decoding context adaptive variable length code
KR100219131B1 (ko) 순차기록방식에 따라 기록된 영상데이타를 위한 가변장 복호기
KR100525373B1 (ko) 비디오 플레이어 및 비디오 플레이어의 고속 감기제어 방법
JPH11251922A (ja) 圧縮符号化装置及び方法
KR20020053335A (ko) 가변길이 복호화 장치

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: 20140224

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150224

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160224

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170214

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190214

Year of fee payment: 9