KR100647295B1 - 비디오 디코더에서의 인접 정보 처리 장치 및 방법과 그방법을 수행하기 위한 프로그램이 저장된 기록 매체 - Google Patents

비디오 디코더에서의 인접 정보 처리 장치 및 방법과 그방법을 수행하기 위한 프로그램이 저장된 기록 매체 Download PDF

Info

Publication number
KR100647295B1
KR100647295B1 KR1020040091495A KR20040091495A KR100647295B1 KR 100647295 B1 KR100647295 B1 KR 100647295B1 KR 1020040091495 A KR1020040091495 A KR 1020040091495A KR 20040091495 A KR20040091495 A KR 20040091495A KR 100647295 B1 KR100647295 B1 KR 100647295B1
Authority
KR
South Korea
Prior art keywords
information
neighboring
neighbor
deblocking filter
storing
Prior art date
Application number
KR1020040091495A
Other languages
English (en)
Other versions
KR20060042732A (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 KR1020040091495A priority Critical patent/KR100647295B1/ko
Priority to US11/270,626 priority patent/US7929614B2/en
Publication of KR20060042732A publication Critical patent/KR20060042732A/ko
Application granted granted Critical
Publication of KR100647295B1 publication Critical patent/KR100647295B1/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/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
    • 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

Landscapes

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

Abstract

본 발명은 각 모듈을 파이프라인 방식으로 운영하는 비디오 디코더에 있어서 메모리 액세스를 최소화할 수 있는 인접 정보 처리 장치 및 방법에 관한 것으로, 본 발명에 따른 장치는, 현재 블록을 기준으로 공간상으로 인접한 블록이 적어도 하나 존재하면, 메모리로부터 해당되는 모든 인접한 블록의 정보를 액세스하고, 액세스된 정보를 인접 정보로서 제공하는 인접 정보 제공부; 비디오 디코더에 구비된 복수개의 모듈중에서 인접 정보를 필요로 하는 모듈로 인접 정보를 전달하기 위하여, 인접 정보 제공부로부터 제공되는 인접 정보를 저장하는 저장부를 포함함으로써, 비디오 디코더의 처리 속도를 개선할 수 있고, 하드웨어 모듈 설계를 용이하게 할 수 있다.

Description

비디오 디코더에서의 인접 정보 처리 장치 및 방법과 그 방법을 수행하기 위한 프로그램이 저장된 기록 매체{Neighbor information processing apparatus and method in the video decoder and recording medium storing a program to implement thereof}
도 1은 기존의 H.264 디코더의 기능 블록도이다.
도 2는 메모리로부터 데이터 액세스 시 일반적인 타이밍도이다.
도 3은 본 발명의 바람직한 실시 예에 따른 인접 정보 처리 장치를 포함한 비디오 디코더의 기능 블록도이다.
도 4는 현재 매크로 블록을 기준으로 선택 가능한 인접 매크로 블록의 예시도이다.
도 5는 현재 매크로 블록을 기준으로 선택 가능한 인접 블록의 예시도이다.
도 6(a) 내지 도 6(c)은 현재 매크로 블록을 기준으로 제공 가능한 인접 매크로 블록 정보에 대한 예시 도이다.
도 7은 메모리에 저장된 인접 정보 데이터 구조도이다.
도 8은 도 3에 포함된 각 모듈의 매크로 블록단위의 파이프라인 동작 예시도이다.
도 9는 본 발명의 바람직한 실시 예에 따른 인접 정보 처리 방법의 동작 흐 름도이다.
본 발명은 비디오 디코더에서의 인접(neighbor) 정보 처리 장치 및 방법에 관한 것으로, 특히 메모리의 액세스를 최소화 할 수 있는 인접 정보 처리 장치 및 방법과 그 방법을 수행하기 위한 프로그램이 저장된 기록 매체에 관한 것이다.
비디오 디코더는 압축된 형태로 코딩된 영상을 복원하는 장치이다. 상기 비디오 디코더는 비디오 코덱(codec) 또는 H.264 코덱과 같은 장치에 포함될 수 있다. 도 1은 H.264 코덱에 포함되는 H.264 디코더의 기능 블록도이다.
도 1에 도시된 H.264 디코더는 디코더의 속도를 향상시키기 위하여, 엔트로피 디코더(102), 역 양자화 및 역 변환부(103), 움직임 예측부(104) 및 디블록킹 필터(Deblocking filter)(105)를 매크로 블록단위의 파이프라인(Pipeline) 방식으로 운영한다. 즉, 엔트로피 디코더(102)가 n번째 매크로 블록에 대해 엔트로피 디코딩을 수행할 때, 역양자화 및 역 변환부(103)는 n-1번째 매크로 블록에 대해 역 양자화 및 역 변환을 수행하고, 움직임 예측부(104)는 n-2번째 매크로 블록에 대해 움직임 예측을 수행하고, 디블록킹 필터(10)는 n-4번째 매크로 블록에 대해 디블록킹 필터링을 수행한다.
파서(101)를 비롯한 상기 엔트로피 디코더(102), 역 양자화 및 역 변환부(103), 움직임 예측부(104), 디블록킹 필터(105)와 같은 모듈(module)들은 공통 버 스(106)를 이용하여 메모리(107)를 액세스하도록 되어 있다. 메모리(107)는 매크로 블록단위 또는 블록단위로 정보를 저장한다. 따라서, 엔트로피 디코더(102), 역 양자화 및 역 변환부(103), 움직임 예측부(104), 및 디블록킹 필터(105)는 공간상으로 인접한 매트로 블록 또는 블록 정보가 필요한 경우에, 버스(106)를 통해 각각 메모리(107)를 액세스한다.
그러나, 상기 모듈들은 상술한 바와 같이 매크로 블록단위의 파이프라인 방식으로 운영되기 때문에 동시에 복수의 모듈이 메모리(107)를 액세스하는 현상이 빈번하게 발생되어 버스(106)상에서 충돌이 발생되고, 상기 충돌로 인해 데이터 전송이 지연되고 있다. 또한, 메모리(107)를 액세스하기 위하여 각 모듈에서 어드레스를 발생 후, 실질적인 데이터를 수신하기까지 도 2에 도시된 바와 같은 대기시간(latency)이 발생된다. 상기 대기 시간은 약 8 내지 9 클록 사이클이다. 이러한 문제들은 H.264 디코더의 처리 속도 향상을 제한하고 있다.
또한, 메모리(107)로부터 액세스되는 대부분의 인접 정보의 비트 사이즈가 버스(106)의 비트 사이즈보다 작다. 따라서, 인접 정보를 얻기 위하여 메모리(107)를 액세스하는 횟수가 많을수록 버스(106)는 더 비효율적으로 운영되게 된다.
본 발명이 이루고자 하는 기술적 과제는 각 모듈을 파이프라인 방식으로 운영하는 비디오 디코더에 있어서 메모리 액세스를 최소화할 수 있는 인접 정보 처리 장치 및 방법을 제공하는데 그 목적이 있다.
상기 기술적 과제를 달성하기 위하여 본 발명은, 파이프라인방식으로 운영되는 복수개의 모듈, 적어도 블록단위의 정보를 저장한 메모리를 갖는 비디오 디코더의 인접 정보 처리 장치에 있어서, 현재 블록을 기준으로 공간상으로 인접한 블록이 적어도 하나 존재하면, 상기 메모리로부터 해당되는 모든 인접한 블록의 정보를 액세스하고, 액세스된 정보를 인접 정보로서 제공하는 인접 정보 제공부; 상기 복수개의 모듈중에서 상기 인접 정보를 필요로 하는 모듈로 상기 인접 정보를 전달하기 위하여, 상기 인접 정보 제공부로부터 제공되는 인접 정보를 저장하는 저장부를 포함하는 인접 정보 처리 장치를 제공한다.
상기 저장부는 상기 인접 정보를 필요로 하는 모듈단위로 레지스터를 할당한 구조를 갖는 것이 바람직하다. 상기 모듈 단위로 할당된 레지스터는 연속적으로 연결된 것이 바람직하다.
상기 복수개의 모듈이 역 양자화 및 역 변환부, 움직임 예측부, 및 디블록킹 필터를 포함하면, 상기 저장부는 상기 역 양자화 및 역변환부, 상기 움직임 예측부, 및 상기 디블록킹 필터를 위한 인접 정보를 저장하는 제 1 레지스터; 상기 움직임 예측부 및 디블록킹 필터를 위한 인접 정보를 저장하는 제 2 레지스터; 및 상기 디블록킹 필터를 위한 인접 정보를 저장하는 제 3 레지스터를 포함하고, 상기 제 1 레지스터는 저장된 인접 정보중에서 상기 움직임 예측부 및 디블록킹 필터를 위한 인접 정보를 상기 제 2 레지스터로 전송하고, 상기 제 2 레지스터는 저장된 인접 정보중에서 상기 디블록킹 필터를 위한 인접 정보를 상기 제 3 레지스터로 전송하는 것이 바람직하다.
상기 제 1 레지스터, 제 2 레지스터 및 제 3 레지스터는 슬라이스 단위로 처리를 되는 정보를 더 저장하고, 상기 슬라이스 단위로 처리되는 정보는 상기 비디오 디코더에 포함된 파서로부터 제공되는 것이 바람직하다.
상기 복수개의 모듈이 엔트로피 디코더, 역양자화 및 역 변환부, 움직임 예측부 및 디블록킹 필터를 포함하면, 상기 인접 정보 제공부는 상기 엔트로피 디코더, 역양자화 및 역변환부, 움직임 예측부 및 디블록킹 필터에서 필요로 하는 인접 정보를 제공하는 것이 바람직하다.
상기 인접 정보 제공부는 상기 엔트로피 디코더에서 디코딩된 결과를 상기 메모리에 저장하기 위하여 상기 메모리를 액세스하는 것이 바람직하다.
상기 기술적 과제를 달성하기 위하여 본 발명은, 파이프라인방식으로 운영되는 복수개의 모듈, 상기 복수개의 모듈과 연결되고 적어도 블록단위의 정보를 저장한 메모리를 액세스하기 위하여 이용되는 버스를 갖는 비디오 디코더의 인접 정보 처리 장치에 있어서, 현재 블록을 기준으로 공간상으로 인접한 블록이 적어도 하나 존재하면, 상기 버스를 통해 상기 메모리로부터 해당되는 모든 인접한 블록의 정보를 액세스하고, 액세스된 정보를 인접 정보로서 제공하는 인접 정보 제공부; 상기 복수개의 모듈중에서 상기 인접 정보를 필요로 하는 모듈로 상기 인접 정보를 전달하기 위하여, 상기 인접 정보 제공부로부터 제공되는 인접 정보를 저장하는 저장부를 포함하는 인접 정보 처리 장치를 제공한다.
상기 기술적 과제를 달성하기 위하여 본 발명은, 파이프라인방식으로 운영되는 복수개의 모듈을 갖고 적어도 블록단위의 정보를 저장한 메모리를 액세스할 수 있는 비디오 디코더의 상기 인접 정보 처리 방법에 있어서, 현재 블록을 기준으로 공간상으로 인접한 블록이 적어도 하나 존재하면, 상기 메모리로부터 해당되는 모든 인접한 블록의 인접 정보를 리드하는 단계; 상기 복수개의 모듈중 상기 리드된 인접 정보를 필요로 하는 모듈로 상기 리드된 인접 정보를 전송하는 단계를 포함하는 인접 정보 처리 방법을 제공한다.
상기 기술적 과제를 달성하기 위하여 본 발명은, 파이프라인방식으로 운영되는 복수개의 모듈을 갖고 적어도 블록단위의 정보를 저장한 메모리를 액세스할 수 있는 비디오 디코더의 상기 인접 정보 처리 방법을 수행하기 위한 프로그램이 저장된 기록매체에 있어서, 상기 인접 정보 처리 방법은, 현재 블록을 기준으로 공간상으로 인접한 블록이 적어도 하나 존재하면, 상기 메모리로부터 해당되는 모든 인접한 블록의 인접 정보를 리드하는 단계; 상기 복수개의 모듈중 상기 리드된 인접 정보를 필요로 하는 모듈로 상기 리드된 인접 정보를 전송하는 단계를 포함하는 기록 매체를 제공한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 상세하게 설명하기로 한다.
도 3은 본 발명의 바람직한 실시 예에 따른 인접 정보 처리 장치를 포함하는 비디오 디코더의 기능 블록도이다. 도 3을 참조하면, 상기 비디오 디코더는, 파서(301), 버스(302), 메모리(303), 엔트로피 디코더(304), 인접 정보 제공부(305), 저장부(306), 역양자화 및 역변환부(310), 움직임 예측부(311), 디블록킹 필터(312)를 포함한다. 저장부(306)는 제 1 내지 제 3 레지스터(307, 308, 309)를 포함 한다.
도 3은 비디오 디코더가 메모리(303)를 포함하는 경우이나, 메모리(303)는 비디오 디코더의 외부 버퍼일 수 있다. 또한, 도 3에 도시된 파서(301), 엔트로피 디코더(304), 역 양자화 및 역 변환부(310), 움직임 예측부(311) 및 디블록킹 필터(312)는 파이프라인 방식으로 운영된다.
먼저, 도 3의 비디오 디코더로 입력되는 비트스트림은 비디오 코딩 계층(Video Coding Layer, VCL) NAL(Network Abstraction Layer)과 논-비디오 코딩 계층(non-VCL) NAL로 이루어지고, 상기 VCL NAL은 슬라이스(slice) 헤더(header)와 데이터(data)로 이루어지고, 각 데이터는 여러 개의 매크로 블록(Macro Block, MB)들로 이루어진다.
파서(301)는 상술한 포맷으로 입력되는 비트스트림을 슬라이스 단위로 파싱(parsing)하고, 파싱된 결과를 버스(302)를 통해 메모리(303)로 제공하면서, 제 1 레지스터(307)로 전송한다. 상기 파싱된 결과는 슬라이스 넘버와 같이 슬라이스 단위 정보이다. 파서는 상기 입력된 비트스트림을 엔트로피 디코더(304)로 전송한다.
엔트로피 디코더(304)는 수신된 비트스트림을 매크로 블록단위로 엔트로피 디코딩한다. 이 때, 엔트로피 디코더(304)는 현재 매크로 블록에 대해 공간상으로 인접한 매크로 블록이 적어도 하나 존재하면, 현재 매크로 블록의 식별 정보와 인접 범위를 나타내는 정보(예를 들어 Mbaff(Macro adaptive frame for field))를 인접 정보 제공부(305)로 제공하고, 인접 정보 제공부(305)로부터 제공된 인접 정보를 이용하여 수신된 비트스트림을 엔트로피 디코딩한다.
인접 정보 제공부(305)는 현재 매크로 블록의 식별 정보와 상기 인접 범위를 나타내는 정보에 기초하여 버스(302)를 통해 메모리(303)를 액세스하여 현재 매크로 블록에 인접한 매크로 블록 또는 4×4 블록의 정보를 리드한다.
예를 들어, 현재 매크로 블록이 도 4에 도시된 바와 같이 "18"일 때, 인접 정보 제공부(305)는 메모리(303)로부터 0 ∼ 13, 16, 17 매크로 블록의 정보를 리드할 수 있다. 또한, 현재 매크로 블록이 도 5에 도시된 바와 같이 해칭된 매크로 블록일 때, 인접 정보 제공부(305)는 메모리(303)로부터 해칭된 4×4 블록 정보들을 리드할 수 있다.
또, 인접 정보 제공부(305)는 도 4에 도시된 인접한 매크로 블록중에서 엔트로피 디코더(304)로부터 제공되는 Mbaff(Macro block Adaptive Frame/Field) 정보에 의해 메모리(303)로부터 리드할 인접 매크로 블록을 결정할 수 있다. 즉, Mbaff ==0이면, 인접 정보 제공부(305)는 도 4와 같은 인접한 매크로 블록들중에서 도 6(a)에 해칭된 4개의 매크로 블록(NMB[1], NMB[3], NMB[5], NMB[6])을 인접한 매크로 블록으로 결정하고, 메모리(303)로부터 매크로 블록단위로 정보를 리드할 수 있다. 또한, Mbaff==1이면, 인접 정보 제공부(305)는 도 4와 같은 인접한 매크로 블록중에서 도 6(b)에 해칭된 8개의 매크로 블록(NMB[0], NMB[1], NMB[2], NMB[3], NMB[4], NMB[5], NMB[6], NMB[7])을 인접한 매크로 블록으로 결정하거나 또는 도 6(c)에 해칭된 9개의 매크로 블록(NMB[0], NMB[1], NMB[2], NMB[3], NMB[4], NMB[5], NMB[6], NMB[7], NMB[8])을 인접한 매크로 블록으로 결정하고, 메모리(303)로부터 매크로 블록단위로 정보를 리드할 수 있다.
버스(302)는 메모리(303)가 외부 버퍼이면, H.264 코덱에서 외부 버스로 정의한 버스일 수 있다. 메모리(303)가 비디오 디코더에 포함되면, 버스(302)는 H.263 코덱에서 내부 버스로 정의한 버스일 수 있다.
상기 메모리(303)는 매크로 블록 또는 4×4 블록단위로 정보를 저장할 수 있다. 매크로 블록 단위로 정보를 저장할 경우에, 메모리(303)는 도 7에 도시된 바와 같은 포맷으로 정보를 저장할 수 있다. 도 7은 32 비트로 매크로 블록 정보를 구성한 경우이다.
도 7에서 'MBI'는 해당되는 매크로 블록이 인트라 블록인지 아닌지를 나타내는 플래그이다. 'MBE'는 해당되는 매크로 블록에서 에러가 발생했는지를 나타내는 플래그이다. 'Slice_num'은 슬라이스 넘버(Slice_nr)이다. 'MBS'는 해당되는 매크로블록이 스킵된 매크로 블록인지를 나타내는 스킵 플래그(skip_flag)이다. 'MBF'는 해당되는 매크로 블록이 필드(MB_Field)인지 아닌지를 나타내는 정보이다. 'Qpc'는 크로미넌스(chrominance)의 양자화 계수이다. 'Qpy'는 루미넌스(luminance)의 양자화 계수이다. 'coded_block_pattern'은 매크로 블록의 계수가 0인지를 나타내는 값이다. 'c_ipred_md'는 크로미넌스의 인트라 예측 모드를 나타내는 정보이다. 'B8pdir[n]'은 매크로 블록에서 n번째 8×8 블록의 예측 방향이다. 'B8mode[n]'은 매크로 블록에서 n번째 8×8 블록의 타입 정보이다. 'cbp_bits'는 CABAC(Context-based Adaptive Binary Arithmetic Coding)를 위해 사용되는 코드 블록 플래그 정보이다. 'LFBetaOFFset"은 디블록킹 필터에서 사용되는 베타 오프셋 정보이다. 'LFAlphaC0OFFset'은 디블록킹 필터에서 사용되는 AlphaC0 Offset정보이 다. 'LFD_idc'는 디블록킹 필터 식별 정보(Deblocking filter identification)이다. 'CBP_blk'는 디블록킹 필터를 위해 사용되는 코드 블록 플래그 정보이다.
인접 정보 제공부(305)가 4개의 매크로 블록 정보를 리드할 경우에, 인접 정보 제공부(305)는 도 7과 같은 포맷을 갖는 매크로 블록 정보를 메모리(303)로부터 4회 리드한다.
인접 정보 제공부(305)는 리드된 인접 정보중에서 엔트로피 디코더(304)에서 필요로 하는 인접 정보를 엔트로피 디코더(304)로 제공하고, 역양자화 및 역 변환부(310), 움직임 예측부(311) 및 디블록킹 필터(312)에서 필요한 인접 정보를 저장부(306)로 전송한다.
엔트로피 디코더(304)에서 필요로 하는 인접 정보는 표 1에 정의된 바와 같다.
엔트로피 디코더를 위한 인접 정보 의미
MvLX[ ] 움직임 벡터 예측을 위한 4x4 파티션 단위의 움직임 벡터
Intra4x4_pred_mode 인트라 4x4 예측 모드를 구하기 위한 4x4 파티션 단위의 인트라 예측 모드
TotalCoeff CAVLC(Context-based Adaptive Variable Length Coding)에서 레지듀얼 데이터(residual data)의 VLC를 위한 4x4 단위의 논 제로 계수(non-zero coefficient)의 수
MvdLX[ ] CABAC의 Mvd의 문맥(context)를 위한 4x4 파티션 단위의 움직임 벡터 차(motion vector difference)
Reldx [][] 예측 및 CABAC의 refidx의 문맥(context)를 위한 4x4 파티션 단위의 참조 인덱스(reference index)
Skip_flag Mb_skip을 위한 문맥(context) 정보를 구하기 위한 매크로 블록 단위의 정보
Mb_field Mbaff에서 인접(neighbor) 위치를 얻기 위한 매크로 블록의 필드/프레임 정보 및 매크로 블록 필드(mb_field)를 위한 문맥(context)을 얻기 위한 정보
Mb_type 매크로 블록 타입(Mb_type)을 위한 문맥(context) 정보를 얻기 위한 매크로 블록 단위의 정보
Cbp CABAC에 대한 부호화된 블록 플래그(1 bit flag per 8x8 block)
Cbp_bits CABAC에 대한 부호화된 블록 플래그(1 bit flag per 4x4 block for DC, AC coefficient)
C_ipred_mode CABAC을 위한 인트라 크로마 예측 모드(Intra_chroma_pred_mode) 정보
Slice_nr 매크로 블록의 유용성(availability)을 검토하기 위한 슬라이스 넘버 정보
Intra_block 매크로 블록의 인트라/인터 여부를 나타냄
인접 정보 제공부(305)는 엔트로피 디코더(304)에서 현재 매크로 블록에 대한 엔트로피 디코딩된 결과가 수신되면, 버스(302)를 통해 메모리(303)에 상기 엔트로피 디코딩된 결과를 라이트한다.
저장부(306)는 제 1 레지스터(307), 제 2 레지스터(308), 및 제 3 레지스터(309)를 포함한다. 제 1 내지 제 3 레지스터(307, 308, 309)는 연속적으로 연결되며, 모듈단위로 할당된다. 즉, 제 1 레지스터(307)는 역양자화 및 역 변환부(310)에 할당된 레지스터이고, 제 2 레지스터(308)는 움직임 예측부(311)에 할당된 레지스터이고, 제 3 레지스터(309)는 디블록킹 필터(312)에 할당된 레지스터이다. 제 1 레지스터 내지 제 3 레지스터(307, 308, 309)에 저장되는 인접 정보는 각 대응되는 모듈에서 파라미터로 이용하므로, 파리미터 레지스터라고 정의할 수 있다.
제 1 레지스터(307)는 인접 정보 제공부(305)로부터 인접 정보가 수신되면, 이를 저장한다. 이 때, 수신되는 인접 정보는 역양자화 및 역 변환부(310), 움직임 예측부(311) 및 디블록킹 필터(312)에서 필요한 인접 정보를 포함한다.
제 1 레지스터(307)는 저장된 인접 정보중에서 움직임 예측부(311)와 디블록킹 필터(312)에서 필요로 하는 인접 정보를 제 2 레지스터(308)로 전송한다. 움직임 예측부(311)에서 필요로 하는 인접 정보는 표 2에 정의된 바와 같다.
예측을 위한 인접 정보 의미
Mb_field Mbaff에서 인접 위치를 얻기 위한 매크로 블록의 필드/프레임 정보
Slice_nr 매크로 블록의 유용성(availability)을 검토하기 위한 슬라이스 넘버 정보
제 2 레지스터(308)는 저장된 인접 정보중 디블록킹 필터(312)에서 필요한 인접 정보를 제 3 레지스터(309)로 전송한다. 제 3 레지스터(309)는 수신된 인접 정보를 저장한다. 디블록킹 필터(312)에서 필요한 인접 정보는 표 3에 정의된 바와 같다.
디블록킹 필터의 세기(Strength)위한 인접 정보 의미
Mb_field Mbaff에서 인접(neighber) 위치를 얻기 위한 매크로 블록의 필드/프레임 정보
MvLX [ ] 필터 세기(Filter Strength) 계산시 이용되는 4x4 파티션 단위의 움직임 벡터
refAdr [ ] [ ] 필터 세기(Filter Strength) 계산시 이용되는 4x4 파티션 단위의 기준 픽쳐(reference pict)
LFDisableldc 조건에 따라 디블록킹 필터를 디스에이블(disable)하도록 하는 지시기(indicator)
Mb_type 필터 세기(Filter Strength) 계산 시 이용되는 인트라/인터 모드 정보
cbp_blk 필터 세기 계산 시 블록의 논제로 계수(non zero coefficient) 여부 검증 시 (루미넌스에 대해서만 4×4 블록당 1비트 플래그)
Slice_nr 매크로 블록의 유용성(availability)을 검토하기 위한 슬라이스 넘버 정보
역양자화 및 역 변환부(310)는 제 1 레지스터(307)에 저장되어 있는 인접 정보를 참조하여 수신된 엔트로피 디코딩된 데이터를 역 양자화하고, 역양자화된 결과를 역 변환한다. 역양자화 및 역 변환부(310)에서 얻은 역 변환된 결과는 레지듀얼(residual)정보로서 움직임 예측부(311)로 전송하면서 버스(302)를 통해 메모리(303)로 전송한다.
움직임 예측부(311)는 현재 매크로 블록의 레지듀얼 정보가 수신되면, 제 2 레지스터(308)에 저장된 인접 정보를 참조하여 픽쳐들간이 움직임을 예측하고 예측된 픽쳐들간의 움직임과 상기 레지듀얼 정보를 이용하여 현재 매크로 블록에 대한 원본 이미지를 복원한다. 복원된 결과는 디블록킹 필터(312)와 버스(302)를 통해 메모리(303)로 전송된다.
디블록킹 필터(312)는 움직임 예측부(311)로부터 입력된 현재 매크로 블록에 대한 복원된 이미지를 디블록킹 필터링하고, 디블록킹 필터링된 결과를 출력하면서 버스(302)를 통해 메모리(303)에 저장시킨다.
상술한 엔트로피 디코더(304), 인접 정보 제공부(305), 역 양자화 및 역 변환부(310), 움직임 예측부(311) 및 디블록킹 필터(312)에 대한 파이프라인 동작은 도 8에 정의된 바와 같다. 도 8에 정의된 각 단계(stage)를 통해 알 수 있는 바와 같이 엔트로피 디코더(304)와 인접 정보 제공부(305)는 동일한 매크로 블록을 처리한다.
도 8의 단계 X+3을 참조하면, 엔트로피 디코더(304)와 인접 정보 제공부(305)가 각각 N+3번째 매크로 블록에 대해 동작할 때, 역양자화 및 역변환부(310)는 N+2번째 매크로 블록에 대한 동작을 수행하고, 움직임 예측부(311)는 N+1번째 매크로 블록에 대한 동작을 수행하고, 디블록킹 필터(312)는 N번째 매크로 블록에 대한 동작을 수행한다.
도 9는 본 발명의 실시 예에 따른 인접 정보 처리 방법의 동작 흐름도이다. 도 3을 참조하여 설명하면 다음과 같다.
현재 매크로 블록을 기준으로 공간상으로 인접한 블록이 적어도 하나 존재하면, 인접 정보 제공부(305)는 메모리(303)로부터 현재 매크로 블록을 기준으로 비디오 디코더의 각 모듈에서 필요로 하는 모든 인접 블록의 정보를 리드한다(901).
인접 정보 제공부(305)는 리드된 인접 블록의 정보중 엔트로피 디코더(304)에 필요한 정보를 엔트로피 디코더(304)로 제공하면서 역 양자화 및 역 변환부(310), 움직임 예측부(311) 및 디블록킹 필터(312)에서 필요로 하는 인접 정보를 저장부(306)로 전송한다(902).
저장부(306)는 인접 정보 제공부(305)로부터 전송된 인접 정보를 필요로 하 는 모듈로 전송하기 위하여 분리 저장한다(903). 먼저, 역양자화 및 역변환부(310), 움직임 예측부(311), 및 디블록킹 필터(312)에서 필요로 하는 인접 정보를 역 양자화 및 역 변환부(310)가 참조할 수 있는 인접 정보로서 저장한다. 그 다음, 움직임 예측부(311)와 디블록킹 필터(312)에서 필요로 하는 인접 정보를 움직임 예측부(311)가 참조할 수 있는 인접 정보로서 저장한다. 그 다음, 디블록킹 필터(312)에서 필요로 하는 인접 정보를 디블록킹 필터(312)가 참조할 수 있는 인접 정보로서 저장한다. 이와 같이 상술한 기준으로 인접 정보를 순차적으로 분리하여 저장한다.
엔트로피 디코더(304), 역 양자화 및 역 변환부(310), 움직임 예측부(311) 및 디블록킹 필터(312)는 903 단계에서 저장된 인접 정보를 참조하여 해당되는 기능을 수행한다(904).
본원 발명에 따른 비디오 디코더에서의 인접 정보 처리 방법을 수행하기 위한 프로그램은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 저장 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.
또한 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있 다. 그리고, 상기 트리 패스 필터링 방법을 구현하기 위한 기능적인(function) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
상술한 바와 같이 본 발명은 각 모듈을 파이프라인 방식으로 운영하는 비디오 디코더에 있어서 메모리로부터 매크로 블록단위로 인접 정보를 액세스하고, 액세스된 인접 정보를 각 모듈별로 참조할 수 있도록 분리 저장시키고, 비디오 디코더의 각 모듈에서 상기 저장된 인접 정보를 참조하도록 함으로써, 인접 정보를 얻기 위한 메모리 액세스를 최소화할 수 있다. 또한, 인접 정보를 얻기 위한 버스상의 충돌을 방지할 수 있어 충돌로 인한 데이터 전송 지연을 막을 수 있다. 따라서, 비디오 디코더의 처리 속도를 개선할 수 있다.
그리고, 메모리와 각 모듈간에 존재하는 버스의 비효율적인 운영을 최소화 시키고, 상술한 바와 같이 메모리 액세스를 최소화함으로써, 비디오 디코더의 하드 웨어 모듈 설계를 용이하게 할 수 있다.
본 발명은 상술한 실시 예에 한정되지 않으며, 본 발명의 사상 내에서 당업자에 의한 변형이 가능함은 물론이다. 따라서, 본 발명에서 권리를 청구하는 범위는 상세한 설명의 범위 내로 정해지는 것이 아니라 후술하는 청구범위로 정해질 것이다.

Claims (12)

  1. 파이프라인방식으로 운영되는 복수개의 모듈, 적어도 블록단위의 정보를 저장한 메모리를 갖는 비디오 디코더의 인접 정보 처리 장치에 있어서,
    현재 블록을 기준으로 공간상으로 인접한 블록이 적어도 하나 존재하면, 상기 메모리로부터 해당되는 모든 인접한 블록의 정보를 액세스하고, 액세스된 정보를 인접 정보로서 제공하는 인접 정보 제공부;
    상기 복수개의 모듈중에서 상기 인접 정보를 필요로 하는 모듈로 상기 인접 정보를 전달하기 위하여, 상기 인접 정보 제공부로부터 제공되는 인접 정보를 저장하는 저장부를 포함하고,
    상기 저장부는 상기 인접 정보를 필요로 하는 모듈단위로 레지스터를 할당한 구조를 갖는 것을 특징으로 하는 인접 정보 처리 장치.
  2. 삭제
  3. 제 1 항에 있어서, 상기 모듈 단위로 할당된 레지스터는 연속적으로 연결된 것을 특징으로 하는 인접 정보 처리 장치.
  4. 제 1 항에 있어서, 상기 복수개의 모듈이 역 양자화 및 역 변환부, 움직임 예측부, 및 디블록킹 필터를 포함하면,
    상기 저장부는 상기 역 양자화 및 역변환부, 상기 움직임 예측부, 및 상기 디블록킹 필터를 위한 인접 정보를 저장하는 제 1 레지스터;
    상기 움직임 예측부 및 디블록킹 필터를 위한 인접 정보를 저장하는 제 2 레지스터; 및
    상기 디블록킹 필터를 위한 인접 정보를 저장하는 제 3 레지스터를 포함하고,
    상기 제 1 레지스터는 저장된 인접 정보중에서 상기 움직임 예측부 및 디블록킹 필터를 위한 인접 정보를 상기 제 2 레지스터로 전송하고, 상기 제 2 레지스터는 저장된 인접 정보중에서 상기 디블록킹 필터를 위한 인접 정보를 상기 제 3 레지스터로 전송하는 인접 정보 처리 장치.
  5. 제 4 항에 있어서, 상기 제 1 레지스터, 제 2 레지스터 및 제 3 레지스터는 슬라이스 단위로 처리를 되는 정보를 더 저장하고, 상기 슬라이스 단위로 처리되는 정보는 상기 비디오 디코더에 포함된 파서로부터 제공되는 것을 특징으로 인접 정보 처리 장치.
  6. 제 1 항에 있어서, 상기 복수개의 모듈이 엔트로피 디코더, 역양자화 및 역 변환부, 움직임 예측부 및 디블록킹 필터를 포함하면,
    상기 인접 정보 제공부는 상기 엔트로피 디코더, 역양자화 및 역변환부, 움직임 예측부 및 디블록킹 필터에서 필요로 하는 인접 정보를 제공하는 것을 특징으로 하는 인접 정보 처리 장치.
  7. 제 6 항에 있어서, 상기 인접 정보 제공부는 상기 엔트로피 디코더에서 디코딩된 결과를 상기 메모리에 저장하기 위하여 상기 메모리를 액세스하는 것을 특징으로 하는 인접 정보 처리 장치.
  8. 파이프라인방식으로 운영되는 복수개의 모듈, 상기 복수개의 모듈과 연결되고 적어도 블록단위의 정보를 저장한 메모리를 액세스하기 위해 이용되는 버스를 갖는 비디오 디코더의 인접 정보 처리 장치에 있어서,
    현재 블록을 기준으로 공간상으로 인접한 블록이 적어도 하나 존재하면, 상기 버스를 통해 상기 메모리로부터 해당되는 모든 인접한 블록의 정보를 액세스하고, 액세스된 정보를 인접 정보로서 제공하는 인접 정보 제공부;
    상기 복수개의 모듈중에서 상기 인접 정보를 필요로 하는 모듈로 상기 인접 정보를 전달하기 위하여, 상기 인접 정보 제공부로부터 제공되는 인접 정보를 저장하는 저장부를 포함하고,
    상기 저장부는 상기 인접 정보를 필요로 하는 모듈단위로 레지스터를 할당한 구조를 갖는 것을 특징으로 하는 인접 정보 처리 장치.
  9. 파이프라인방식으로 운영되는 복수개의 모듈을 갖고 적어도 블록단위의 정보를 저장한 메모리를 액세스할 수 있는 비디오 디코더의 상기 인접 정보 처리 방법에 있어서,
    현재 블록을 기준으로 공간상으로 인접한 블록이 적어도 하나 존재하면, 상기 메모리로부터 해당되는 모든 인접한 블록의 인접 정보를 리드하는 단계;
    상기 복수개의 모듈중 상기 리드된 인접 정보를 필요로 하는 모듈로 상기 리드된 인접 정보를 전송하는 단계를 포함하고,
    상기 전송 단계는, 상기 리드된 인접 정보를 모듈 단위로 저장하여 전송하는 것을 특징으로 하는 인접 정보 처리 방법.
  10. 삭제
  11. 제 9 항에 있어서, 상기 복수개의 모듈이 역양자화 및 역 변환부, 움직임 예측부, 및 디블록킹 필터를 포함하면,
    상기 전송 단계는 상기 리드된 인접 정보중에서 역양자화 및 역 변환부, 움직임 예측부 및 디블록킹 필터에서 필요로 하는 인접 정보를 저장하는 제 1 저장 단계;
    상기 제 1 저장 단계에서 저장된 인접 정보중 상기 움직임 예측부 및 디블록킹 필터에서 필요로 하는 인접 정보를 저장하는 제 2 저장 단계;
    상기 제 2 저장 단계에서 저장된 인접 정보중 상기 디블록킹 필터에서 필요로 하는 인접 정보를 저장하는 제 3 저장 단계를 포함하는 인접 정보 처리 방법.
  12. 파이프라인방식으로 운영되는 복수개의 모듈을 갖고 적어도 블록단위의 정보를 저장한 메모리를 액세스할 수 있는 비디오 디코더의 상기 인접 정보 처리 방법을 수행하기 위한 프로그램이 저장된 기록매체에 있어서,
    현재 블록을 기준으로 공간상으로 인접한 블록이 적어도 하나 존재하면, 상기 메모리로부터 해당되는 모든 인접한 블록의 인접 정보를 리드하는 코드;
    상기 복수개의 모듈중 상기 리드된 인접 정보를 필요로 하는 모듈로 상기 리드된 인접 정보를 전송하는 코드를 포함하고,
    상기 전송은 상기 리드된 인접 정보를 모듈 단위로 저장하여 전송하는 것을 특징으로 하는 기록 매체.
KR1020040091495A 2004-11-10 2004-11-10 비디오 디코더에서의 인접 정보 처리 장치 및 방법과 그방법을 수행하기 위한 프로그램이 저장된 기록 매체 KR100647295B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020040091495A KR100647295B1 (ko) 2004-11-10 2004-11-10 비디오 디코더에서의 인접 정보 처리 장치 및 방법과 그방법을 수행하기 위한 프로그램이 저장된 기록 매체
US11/270,626 US7929614B2 (en) 2004-11-10 2005-11-10 Apparatus, medium, and method for processing neighbor information in video decoding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040091495A KR100647295B1 (ko) 2004-11-10 2004-11-10 비디오 디코더에서의 인접 정보 처리 장치 및 방법과 그방법을 수행하기 위한 프로그램이 저장된 기록 매체

Publications (2)

Publication Number Publication Date
KR20060042732A KR20060042732A (ko) 2006-05-15
KR100647295B1 true KR100647295B1 (ko) 2006-11-23

Family

ID=36316304

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040091495A KR100647295B1 (ko) 2004-11-10 2004-11-10 비디오 디코더에서의 인접 정보 처리 장치 및 방법과 그방법을 수행하기 위한 프로그램이 저장된 기록 매체

Country Status (2)

Country Link
US (1) US7929614B2 (ko)
KR (1) KR100647295B1 (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100243225B1 (ko) * 1997-07-16 2000-02-01 윤종용 블록화효과 및 링잉잡음 감소를 위한 신호적응필터링방법 및신호적응필터
WO2007081134A1 (en) * 2006-01-09 2007-07-19 Lg Electronics Inc. Inter-layer prediction method for video signal
US8787465B2 (en) * 2006-03-31 2014-07-22 Intel Corporation Method for neighboring block data management of advanced video decoder
JP4789200B2 (ja) * 2006-08-07 2011-10-12 ルネサスエレクトロニクス株式会社 動画符号化と動画復号とのいずれかを実行する機能モジュールおよびそれを含む半導体集積回路
JP4763549B2 (ja) * 2006-08-18 2011-08-31 富士通セミコンダクター株式会社 フレーム間予測処理装置、画像符号化装置、及び画像復号化装置
KR101325795B1 (ko) * 2006-08-22 2013-11-05 엘지전자 주식회사 H.264/avc에서 매크로블록 데이터의 디코딩 방법 및디코딩 장치
US8238442B2 (en) * 2006-08-25 2012-08-07 Sony Computer Entertainment Inc. Methods and apparatus for concealing corrupted blocks of video data
US8699561B2 (en) * 2006-08-25 2014-04-15 Sony Computer Entertainment Inc. System and methods for detecting and handling errors in a multi-threaded video data decoder
US8767830B2 (en) * 2006-09-13 2014-07-01 Vixs Systems, Inc Neighbor management module for use in video encoding and methods for use therewith
KR100827106B1 (ko) * 2006-10-20 2008-05-02 삼성전자주식회사 디블록킹 필터에서의 필터 조건 영역 판별을 위한 장치 및방법
US8411734B2 (en) 2007-02-06 2013-04-02 Microsoft Corporation Scalable multi-thread video decoding
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
KR101421054B1 (ko) * 2007-08-06 2014-07-18 삼성전자주식회사 버퍼를 이용한 연산 분산 방법 및 이를 이용한 연산 분산시스템
ATE526788T1 (de) * 2007-11-16 2011-10-15 St Microelectronics Sa Deblockierungsfilter
US8885726B2 (en) * 2007-12-04 2014-11-11 Vixs Systems, Inc. Neighbor management for use in entropy encoding and methods for use therewith
JP5309700B2 (ja) * 2008-06-03 2013-10-09 富士通株式会社 動画像復号装置および符号化装置
US20090310686A1 (en) * 2008-06-17 2009-12-17 Do-hyoung Kim Distributed decoding device of sequential parallel processing scheme and method for the same
EP2351374A1 (en) * 2008-11-25 2011-08-03 Thomson Licensing Methods and apparatus for sparsity-based de-artifact filtering for video encoding and decoding
KR101138920B1 (ko) * 2010-05-04 2012-05-14 한양대학교 산학협력단 멀티 스레드 기반의 비디오 디코더 및 디코딩 방법
US9819966B2 (en) 2010-09-01 2017-11-14 Qualcomm Incorporated Filter description signaling for multi-filter adaptive filtering
US9247265B2 (en) * 2010-09-01 2016-01-26 Qualcomm Incorporated Multi-input adaptive filter based on combination of sum-modified Laplacian filter indexing and quadtree partitioning
US9706214B2 (en) 2010-12-24 2017-07-11 Microsoft Technology Licensing, Llc Image and video decoding implementations
US9565455B2 (en) 2011-06-28 2017-02-07 Samsung Electronics Co., Ltd. Method and apparatus for coding video and method and apparatus for decoding video accompanied with arithmetic coding
US8731067B2 (en) 2011-08-31 2014-05-20 Microsoft Corporation Memory management for video decoding
HUE054084T2 (hu) * 2011-12-15 2021-08-30 Tagivan Ii Llc Luminancia-krominancia kódolt blokk jelölõk (CBF) jelzése videokódolásban
US9819949B2 (en) 2011-12-16 2017-11-14 Microsoft Technology Licensing, Llc Hardware-accelerated decoding of scalable video bitstreams
US9414054B2 (en) 2012-07-02 2016-08-09 Microsoft Technology Licensing, Llc Control and use of chroma quantization parameter values
US9591302B2 (en) * 2012-07-02 2017-03-07 Microsoft Technology Licensing, Llc Use of chroma quantization parameter offsets in deblocking
US9344720B2 (en) * 2012-08-07 2016-05-17 Apple Inc. Entropy coding techniques and protocol to support parallel processing with low latency
CN107578016B (zh) * 2017-09-06 2021-05-11 重庆大学 一种基于稀疏表示的剩余电流波形自动识别方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5603012A (en) * 1992-06-30 1997-02-11 Discovision Associates Start code detector
KR100218523B1 (ko) 1995-10-12 1999-09-01 윤종용 엠펙 비디오 복호기
JP2004253099A (ja) * 2003-02-21 2004-09-09 Toshiba Corp シンクフレーム構造、情報記憶媒体、情報記録方法、情報再生方法、および情報再生装置
US7362810B2 (en) * 2003-05-13 2008-04-22 Sigmatel, Inc. Post-filter for deblocking and deringing of video data
US7499493B2 (en) * 2003-06-20 2009-03-03 Lsi Corporation Dual block motion vector storage in compressed form
US7697610B2 (en) * 2004-09-13 2010-04-13 Microsoft Corporation Variable block size early termination for video coding
US7684491B2 (en) * 2005-03-31 2010-03-23 Intel Corporation Reference data buffer for intra-prediction of digital video

Also Published As

Publication number Publication date
US7929614B2 (en) 2011-04-19
KR20060042732A (ko) 2006-05-15
US20060098734A1 (en) 2006-05-11

Similar Documents

Publication Publication Date Title
KR100647295B1 (ko) 비디오 디코더에서의 인접 정보 처리 장치 및 방법과 그방법을 수행하기 위한 프로그램이 저장된 기록 매체
JP7140870B2 (ja) 低遅延画像符号化
Zhou et al. Parallel tools in HEVC for high-throughput processing
RU2784930C1 (ru) Кодирование изображений с малой задержкой

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

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131030

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141030

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151029

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee