KR20170053031A - 복수개의 블록 기반의 파이프라인을 이용한 데이터 처리 속도 개선 장치 및 그 동작 방법 - Google Patents

복수개의 블록 기반의 파이프라인을 이용한 데이터 처리 속도 개선 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR20170053031A
KR20170053031A KR1020150155280A KR20150155280A KR20170053031A KR 20170053031 A KR20170053031 A KR 20170053031A KR 1020150155280 A KR1020150155280 A KR 1020150155280A KR 20150155280 A KR20150155280 A KR 20150155280A KR 20170053031 A KR20170053031 A KR 20170053031A
Authority
KR
South Korea
Prior art keywords
block
block group
blocks
memory
decoding
Prior art date
Application number
KR1020150155280A
Other languages
English (en)
Other versions
KR102171119B1 (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 KR1020150155280A priority Critical patent/KR102171119B1/ko
Priority to US15/251,476 priority patent/US10244247B2/en
Priority to CN201610816552.9A priority patent/CN106686380B/zh
Publication of KR20170053031A publication Critical patent/KR20170053031A/ko
Application granted granted Critical
Publication of KR102171119B1 publication Critical patent/KR102171119B1/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/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/124Quantisation
    • 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/17Methods 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 an image region, e.g. an object
    • H04N19/176Methods 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 an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • 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/436Methods 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 using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • 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/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/17Methods 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 an image region, e.g. an object
    • 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/182Methods 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 pixel

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

블록 그룹 단위의 메모리 액세스를 통한 영상의 복호화 방법 및 장치가 개시된다. 개시된 일 실시예에 따른 영상의 복호화 방법 및 장치는 부호화된 영상의 비트스트림에 포함된 하나 이상의 블록의 크기 정보를 확인하고, 하나 이상의 블록의 크기 정보에 기초하여 하나 이상의 블록을 그룹화하여 복호화를 수행할지 여부를 결정하고, 하나 이상의 블록의 크기 정보에 기초하여 하나 이상의 블록을 포함하는 블록 그룹을 설정하며, 블록 그룹 단위로 병렬-파이프라인 복호화 동작이 수행되도록 블록 그룹 단위로 메모리로의 액세스를 수행한다.

Description

복수개의 블록 기반의 파이프라인을 이용한 데이터 처리 속도 개선 장치 및 그 동작 방법{ENHANCED DATA PROCESSING APPARATUS USING MULTIPLE-BLOCK BASED PIPELINE AND OPERATION METHOD THEREOF}
복수개의 블록 기반의 파이프라인을 이용한 데이터 처리 속도 개선 장치 및 그 동작 방법에 관한 것으로, 보다 상세하게는 복수개의 블록을 포함하는 블록 그룹 단위로 메모리 액세스를 수행하여 블록 그룹 단위로 병렬-파이프라인 복호화 동작이 수행되도록 하는 영상의 복호화 방법 및 장치에 관한 것이다.
영상이나 음향이 디지털 데이터로 전환될 경우, 전환되는 디지털 데이터의 양은 상당히 크다. 디지털 데이터의 압축이 이루어지지 않을 경우 디지털 데이터는 저장공간을 많이 차지한다. 그래서, 디지털 데이터의 양을 줄이는 압축기술이 필요하게 되었고, 압축기술을 이용하여 저장공간 활용 및 네트워크를 통한 전송기능이 향상될 수 있다. 예를들면, 이미지 압축방식은 GIF, JPEG등의 포맷이 있으며, 영상 및 음향압축방식은 MPEG, H.263, H.264, H.265(HEVC) 등이 있다. 이 중에서 가장 최근의 영상 표준인 High Efficiency Video Coding(이하, 'HEVC')는 Joint Collaborative Team on Video Coding(JCT-VC)에 의해 2013년에 발표되었다.
HEVC는 기존의 영상 표준에서 사용되었던 고정된 크기를 가지는 매크로 블록(macroblock)을 대신하여 계층적 재귀 구조를 가지는 쿼드트리(quadtree) 분할 방식의 코딩 단위(coding unit: CU)를 도입하였다. HEVC는 기존의 영상 표준과 비교하여 쿼드트리 구조를 채택함으로써 압축 효율(compression efficiency)을 현저히 향상시켰으나, 계산 복잡도가 매우 증가되었다. 하나의 프레임은 최대 64×64 크기를 가지는 최대 크기 코딩 단위(largest coding unit: LCU)들로 나누어지며, 가장 큰 코딩 단위는 최소 8×8 크기를 가지는 가장 작은 코딩 단위(smallest coding unit: SCU)에 이를 때까지 반복적으로 분할될 수 있다.
한편, 입력 비디오 스트림은 GOP(Group Of Pictures)라는 일련의 픽쳐 내지 프레임의 군들로 나뉘어진다. 각각의 GOP는 다수의 픽쳐를 포함하고, 각각의 픽쳐는 다수의 슬라이스로 나뉘어진다. 그리고, 한 GOP내에 2가지 종류의 픽쳐가 나타날 수 있는데, 하나는 인트라(INTRA) 모드 픽쳐(또는 I-픽쳐)이고 다른 하나는 예측 움직임 보상된 픽쳐(P-픽쳐 또는 B-픽쳐)이다. I-픽쳐에서는 모든 블록이 인트라 모드로, 움직임 보상을 고려하지 않고 디코딩된다. P-픽쳐는 한 개의 참조 픽쳐 리스트에서 참조 픽쳐를 선택하는 단방향 예측만을 수행하고, B-픽쳐는 두 개의 참조 픽쳐 리스트를 사용하는 양방향 예측과 하나의 참조 픽쳐 리스트를 사용하는 단방향 예측을 선택적으로 사용할 수 있다. 예측 움직임 보상된 픽쳐(P-픽쳐 또는 B-픽쳐)는 각 블록이 움직임 보상을 이용하는 인터(INTER) 모드로 디코딩될 수 있다.
영상 복호화 시스템에 있어서, 메모리의 경우 입력 비디오 스트림과 움직임 보상을 위한 프레임들을 저장하기 위한 메모리가 존재한다.
영상 복호화 시스템에서 메모리 액세스에는, 1) 엔트로피 복호화를 위한 메모리 액세스, 2) 각 블록 사이즈 별 인터 모드 예측을 위한 메모리 액세스, 3) 인트라 모드 예측을 위한 주변 블록의 메모리 액세스, 4) 필터링을 위한 메모리 액세스, 5) 최종 리컨 이미지를 메모리에 쓰기가 있다. 이 중 3) 과 4)는 인터널 메모리를 이용하기도 한다. 특히, 이러한 메모리 액세스 중에서, 인터 모드 예측을 수행하는 경우의 메모리 대역폭이 가장 크다.
최근 새로운 동영상 부호화 국제 표준으로 제안된 H.265의 경우 블록의 처리 단위가 더 다양해졌고, 움직임 추정 및 보상 방법이 종래의 기술에 비해 훨씬 복잡해짐으로써 움직임 보상시 요구되는 메모리 액세스량이 종래에 비해 훨씬 증가되었다. 따라서, 영상 복호화 장치에서 효율적인 메모리 액세스 방법이 요구된다. 또한 이전의 H.264의 경우엔 MB(Macro Block) 16x16 만이 유일한 기본 처리 유닛으로 UHD(Ultra High Definition) 등의 큰 영상처리 시에 움직임 보상 처리로 인한 많은 액세스로 인해 마찬가지로 효율적인 메모리 액세스 방법이 요구된다.
복수개의 블록을 포함하는 블록 그룹 단위로 메모리 액세스를 수행하고, 블록 그룹 단위로 병렬-파이프라인 복호화 동작이 수행되도록 함으로써, 전체 블록에 대한 데이터 처리 속도를 개선할 수 있는 영상의 복호화 방법 및 장치를 제공하는 데 목적이 있다.
일 실시예에 따른 영상의 복호화 방법은, 부호화된 영상의 비트스트림에 포함된 하나 이상의 블록의 크기 정보를 확인하는 단계; 상기 하나 이상의 블록의 크기 정보에 기초하여 상기 하나 이상의 블록을 그룹화하여 복호화를 수행할지 여부를 결정하는 단계; 상기 하나 이상의 블록의 크기 정보에 기초하여 상기 하나 이상의 블록을 포함하는 블록 그룹을 설정하는 단계; 및 상기 블록 그룹 단위로 병렬-파이프라인 복호화 동작이 수행되도록 상기 블록 그룹 단위로 메모리로의 액세스를 수행하는 단계를 포함한다.
또한, 일 실시예에 따른 영상의 복호화 방법에서, 상기 병렬-파이프라인 복호화 동작은, 엔트로피 복호화, 역양자화 및 역변환, 인트라/인터 예측, 복원 및 필터링을 상기 블록 그룹 단위 별로 주기에 따라 순차적으로 지연되어 병렬 처리하는 동작을 포함할 수 있다.
또한, 일 실시예에 따른 영상의 복호화 방법에서, 상기 하나 이상의 블록을 그룹화하여 복호화를 수행할지 여부를 결정하는 단계는, 상기 하나 이상의 블록의 각 블록의 크기가 16×16 보다 작거나 16×16 인 경우, 상기 하나 이상의 블록을 그룹화하도록 결정하는 단계; 및 상기 하나 이상의 블록의 각 블록의 크기가 16×16 보다 큰 경우, 상기 하나 이상의 블록을 그룹화하지 않도록 결정하는 단계를 포함할 수 있다.
또한, 일 실시예에 따른 영상의 복호화 방법에서, 상기 블록 그룹은 16×16 크기를 갖는 4 개의 블록을 포함할 수 있다.
또한, 일 실시예에 따른 영상의 복호화 방법에서, 상기 블록 그룹 단위로 메모리로의 액세스를 수행하는 단계는, 움직임 보상을 수행하기 위해 상기 블록 그룹 단위로 상기 메모리로부터 참조 영상 데이터를 획득하는 단계를 포함할 수 있다.
또한, 일 실시예에 따른 영상의 복호화 방법에서, 상기 블록 그룹 단위로 상기 메모리로부터 참조 영상 데이터를 획득하는 단계는, 상기 블록 그룹에 포함된 각 블록에 대응하는 참조 영상 데이터를 요청하는 요청 신호를 결합하여 다중(multiple) 요청 신호를 생성하는 단계; 및 상기 다중 요청 신호를 통해 상기 메모리에 액세스하여, 한 주기에 상기 각 블록에 대응하는 상기 참조 영상 데이터를 획득하는 단계를 포함할 수 있다.
또한, 일 실시예에 따른 영상의 복호화 방법에서, 상기 방법은, 상기 블록 그룹 단위로 움직임 벡터를 확인하는 단계; 및 상기 움직임 벡터가 정수 화소가 아닌 반화소 또는 1/4화소를 나타내면, 상기 참조 영상 데이터에 대하여 보간을 수행하는 단계를 더 포함할 수 있다.
또한, 일 실시예에 따른 영상의 복호화 방법에서, 상기 블록 그룹 단위로 메모리로부터 참조 영상 데이터를 획득하는 단계는, 상기 참조 영상 데이터를 획득하기 위해 상기 블록 그룹 단위로 로컬 캐쉬에 액세스하는 단계를 포함할 수 있다.
또한, 일 실시예에 따른 영상의 복호화 방법에서, 상기 블록 그룹 단위로 메모리로부터 참조 영상 데이터를 획득하는 단계는, 상기 블록 그룹 단위로 움직임 벡터를 분석하는 단계; 상기 분석에 기초하여 상기 참조 영상 데이터를 획득하기 위해 상기 블록 그룹 단위로 멀티-웨이 세트 연관 구조 캐쉬(multi-way set associative cache)에 액세스하는 단계; 및 상기 멀티-웨이 세트 연관 구조 캐쉬로의 액세스 과정에서 캐쉬 미스(cache miss)가 발생한 경우, 상기 블록 그룹 단위의 상기 움직임 벡터의 분석에 기초하여 캐쉬 미스된 블록 그룹에 대한 버스(bus)로의 다중 요청(multiple request)을 수행하여 상기 멀티-웨이 세트 연관 구조 캐쉬를 업데이트하는 단계를 포함할 수 있다.
일 실시예에 따른 영상 복호화 장치는, 블록 그룹 단위로 병렬-파이프라인 복호화 동작을 수행하는 영상 복호화부; 및 상기 영상 복호화부로부터 복호화된 데이터를 저장하거나 상기 영상 복호화부의 복호화를 위해 저장된 데이터를 출력하는 메모리를 포함하고, 상기 영상 복호화부는, 부호화된 영상의 비트스트림에 포함된 하나 이상의 블록의 크기 정보를 확인하고, 상기 하나 이상의 블록의 크기 정보에 기초하여 상기 하나 이상의 블록을 그룹화하여 복호화를 수행할지 여부를 결정하고, 상기 하나 이상의 블록의 크기 정보에 기초하여 상기 하나 이상의 블록을 포함하는 상기 블록 그룹을 설정하며, 상기 영상 복호화부가 상기 블록 그룹 단위로 병렬-파이프라인 복호화 동작이 수행되도록 상기 블록 그룹 단위로 메모리로의 액세스를 수행하는 제어부를 포함한다.
또한, 일 실시예에 따른 영상 복호화 장치에서, 상기 병렬-파이프라인 복호화 동작은, 엔트로피 복호화, 역양자화 및 역변환, 인트라/인터 예측, 복원 및 필터링을 상기 블록 그룹 단위 별로 주기에 따라 순차적으로 지연되어 병렬 처리하는 동작을 포함할 수 있다.
또한, 일 실시예에 따른 영상 복호화 장치에서, 상기 제어부는, 상기 하나 이상의 블록의 각 블록의 크기가 16×16 보다 작거나 16×16 인 경우 상기 하나 이상의 블록을 그룹화하도록 결정하고, 상기 하나 이상의 블록의 각 블록의 크기가 16×16 보다 큰 경우 상기 하나 이상의 블록을 그룹화하지 않도록 결정할 수 있다.
또한, 일 실시예에 따른 영상 복호화 장치에서, 상기 블록 그룹은 16×16 크기를 갖는 4 개의 블록을 포함할 수 있다.
또한, 일 실시예에 따른 영상 복호화 장치에서, 상기 제어부는, 움직임 보상을 수행하기 위해 상기 블록 그룹 단위로 상기 메모리로부터 참조 영상 데이터를 획득할 수 있다.
또한, 일 실시예에 따른 영상 복호화 장치에서, 상기 제어부는, 상기 블록 그룹에 포함된 각 블록에 대응하는 참조 영상 데이터를 요청하는 요청 신호를 결합하여 다중(multiple) 요청 신호를 생성하고, 상기 다중 요청 신호를 통해 상기 메모리에 액세스하여, 한 주기에 상기 각 블록에 대응하는 상기 참조 영상 데이터를 획득할 수 있다.
또한, 일 실시예에 따른 영상 복호화 장치에서, 상기 영상 복호화부는, 상기 블록 그룹 단위로 움직임 벡터를 확인하고, 상기 움직임 벡터가 정수 화소가 아닌 반화소 또는 1/4화소를 나타내면, 상기 참조 영상 데이터에 대하여 보간을 수행할 수 있다.
또한, 일 실시예에 따른 영상 복호화 장치에서, 상기 제어부는, 상기 참조 영상 데이터를 획득하기 위해 상기 블록 그룹 단위로 로컬 캐쉬에 액세스할 수 있다.
또한, 일 실시예에 따른 영상 복호화 장치에서, 상기 제어부는, 상기 블록 그룹 단위로 움직임 벡터를 분석하고, 상기 분석에 기초하여 상기 참조 영상 데이터를 획득하기 위해 상기 블록 그룹 단위로 멀티-웨이 세트 연관 구조 캐쉬(multi-way set associative cache)에 액세스하며, 상기 멀티-웨이 세트 연관 구조 캐쉬로의 액세스 과정에서 캐쉬 미스(cache miss)가 발생한 경우, 상기 블록 그룹 단위의 상기 움직임 벡터의 분석에 기초하여 캐쉬 미스된 블록 그룹에 대한 버스(bus)로의 다중 요청(multiple request)을 수행하여 상기 멀티-웨이 세트 연관 구조 캐쉬를 업데이트할 수 있다.
도 1은 일 실시예에 따른 영상 복호화 장치(100)의 개략적인 블록도이다.
도 2는 일 실시예에 따른 영상 복호화 장치(200)의 읽기/쓰기 경로를 나타내는 블록도이다.
도 3은 일 실시예에 따른 영상 복호화 장치(300)의 캐쉬를 통한 참조 영상 데이터 획득 경로를 나타내는 블록도이다.
도 4a는 영상 복호화 시스템의 블록 처리 단위를 나타내기 위한 도면이다.
도 4b는 블록 단위로 병렬-파이프라인 복호화 동작이 수행되는 과정을 나타내기 위한 도면이다.
도 5a는 일 실시예에 따른 영상 복호화 시스템의 블록 처리 단위를 나타내기 위한 도면이다.
도 5b는 일 실시예에 따른 블록 그룹 단위로 병렬-파이프라인 복호화 동작이 수행되는 과정을 나타내기 위한 도면이다.
도 6은 일 실시예에 따른 영상의 복호화 방법을 설명하기 위한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 일 실시예에 따른 영상 복호화 장치(100)의 개략적인 블록도이다.
도 1을 참조하여 설명하면, 영상 복호화 장치(100)는, 복호화부(110), 제어부(120), 메모리(130) 및 데이터 버스(140)를 포함한다.
복호화부(110)는, 입력되는 비트스트림으로부터 디스플레이되는 영상을 복원해내는 역할을 한다. 보다 상세하게, 복호화부(110)는 복호화부(110) 이전 단에서 파싱(parsing)된 비트스트림을 입력받아, 엔트로피(entropy) 복호화부(미도시)에서 엔트로피 복호화를 수행하고, 역양자화/변환부(미도시)에서 부호화된 신호를 역양자화 및 역변환하여 잔차(residual) 신호를 구한다. 또한, 복호화부(110)는 움직임 보상부(미도시)를 통해 움직임 벡터에 기초한 예측 픽쳐를 산출하고, 화소 복원부(미도시)에서 예측 픽쳐와 잔차 신호를 합성한다. 이 합성된 영상의 블록킹 아티팩트(blocking artifact)를 제거하기 위하여, 필터링부(미도시)에서 필터링을 수행한다.
한편, 역양자화와 역변환은 하나의 프로세스를 통해 수행될 수도 있으나, 분리되어 별도의 장치를 통해 각각 수행될 수도 있다.
메모리(130)는 복호화부(110)를 이용하여 복호화된 데이터를 저장하거나 복호화를 위해 저장된 데이터를 출력한다. 예를 들어, 메모리(130)에는 복호화되는 대상 프레임의 일부 영역, 참조 프레임의 일부 또는 전부 영역, 복호화에 필요한 파라미터 및 대상 블록의 주변 정보 등이 저장될 수 있다. 또한, 메모리(130)에는 현재 복호화되는 대상 프레임 및 참조 프레임으로 사용되지 않을 프레임 등이 저장될 수도 있다. 메모리(130)는 후술하는 제어부(120)에 의해 그 동작이 제어된다.
제어부(120)는 데이터 버스(140)를 통해 메모리(130)에 대한 액세스를 제어한다. 제어부(120)는 복호화부(110)로부터의 메모리 접근 요청에 기초하여, 메모리(130)에 소정 데이터를 서로 전송한다. 예를 들어, 제어부(120)는 데이터 버스(140)를 경유하여 메모리(130)로부터 데이터를 리딩하여 복호화부(110)가 현재 프레임에 대해 인터 모드 예측을 수행하게 할 수 있다.
한편, 제어부(120)에서 수행하는 메모리 액세스의 순서는 다음과 같다.
먼저, 영상 복호화 장치(100)의 동작이 시작되면, 제어부(120)는 부호화된 영상의 비트스트림에 포함된 하나 이상의 블록의 크기 정보를 확인한다. 이 때, 제어부(120)는 확인된 블록의 크기 정보에 따라 소정 개수의 블록을 하나의 블록 그룹 단위로 설정할지 여부를 결정한다. 예를 들어, 블록의 크기 정보가 16×16 인 경우 제어부(120)에서 비트스트림에 포함된 블록의 크기가 64×64 이거나 32×32 인 것으로 확인하는 경우 복수 개의 블록을 하나의 단위로 처리하는 대신 개별 블록 단위로 처리할 수 있다. 그러나, 만약 제어부(120)에서 비트스트림에 포함된 블록의 크기가 16×16 인 것으로 확인하는 경우, 16×16 크기의 블록 4개를 하나의 블록 그룹 단위로 설정하여 처리할 수 있다.
하나 이상의 블록을 포함하는 블록 그룹이 설정되면, 제어부(120)는 블록 그룹 단위로 메모리(130)로의 액세스를 수행한다. 이에 따라 복호화부(110)는 블록 그룹 단위로 병렬-파이프라인 복호화 동작을 수행할 수 있다.
이처럼 하나 이상의 블록을 포함하는 블록 그룹 단위로 데이터를 처리하면 개별 블록들에 대해 데이터를 처리하는 경우에 비해 액세스 효율이 개선되는 효과를 갖는다. 예를 들어, 복호화부가 4개 블록에 대한 메모리 액세스를 수행해야 하는 상황에서, 개별 블록들의 단위로 메모리 액세스를 수행한다면 메모리 액세스에 따른 초기 지연(initial delay)이 총 4번 발생한다. 그러나, 만약 일 실시예에 따라 복호화부(110)의 제어부(120)가 4개 블록을 포함하는 블록 그룹 단위로 메모리 액세스를 수행한다면 4개 블록에 대해 총 1번의 초기 지연이 발생한다. 따라서, N개의 블록을 포함하는 블록 그룹을 이용하여 메모리 액세스를 수행할 경우 초기 지연의 발생 횟수를 N분의 1로 감소시킬 수 있다.
한편, 복호화부(110)에서 수행되는 복호화 동작 중 움직임 보상 시에 요구되는 메모리 액세스량이 가장 크다. 움직임 보상 과정에서는 시간적으로 선후 관계에 있는 프레임을 고려하기 때문에, 현재, 이전 혹은 다음 프레임을 저장하고 있는 메모리에 대한 액세스가 매우 빈번하게 요구될 수 밖에 없다. 특히, 움직임 보상을 수행하는 경우의 메모리 대역폭은 엔트로피 복호화, 인트라 예측 및 필터링을 수행하는 경우의 메모리 대역폭을 모두 합한 것보다 크다.
움직임 보상을 수행함에 있어서, 일 실시예에 따른 복호화부(110)는 블록 그룹 단위로 메모리로부터 참조 영상 데이터를 획득할 수 있다. 이 때, 일 실시예에 따른 복호화부(110)의 제어부(120)는 블록 그룹에 포함된 각 블록에 대응하는 참조 영상 데이터를 요청하는 요청 신호를 결합하여 다중(multiple) 요청 신호를 생성하고, 다중 요청 신호를 통해 메모리에 액세스할 수 있다. 이에 따라 복호화부(110)는 한 주기(cycle)에 각 블록에 대응하는 참조 영상 데이터를 획득할 수 있다. 여기서, 다중 요청 신호는 블록 그룹 내의 개별 블록들에 대한 요청 신호가 순차적으로 결합(aggregate)된 것일 수 있다. 그리고, 만약 움직임 벡터가 정수 화소가 아닌 반화소 또는 1/4화소를 나타내면, 참조 영상 데이터에 대하여 보간을 수행할 수 있다.
이처럼, 일 실시예에 따른 영상 복호화 장치(100)는 블록 그룹 단위로 데이터를 처리하기 때문에, 메모리 액세스를 수행하는 과정에서 초기 지연의 발생 횟수를 감소시킬 수 있다. 초기 지연 발생 횟수의 감소는, 영상 복호화 장치(100)의 실시간 처리 속도 개선 및 동작 주파수의 효율적 가용에 따른 전력 소비 저감 등의 효과를 가져온다.
한편, 복호화부(110)에서 수행하는 복호화 동작은 하나 이상의 블록을 포함하는 블록 그룹 단위로 파이프라인 방식으로 구현된다. 즉, 엔트로피 복호화, 역양자화/역변환, 움직임 보상 및 필터링 연산은 블록 그룹 단위 별로 주기에 따라 순차적으로 지연되어 병렬로 수행되면서 동시에 각 프로세서 간의 데이터 전송이 파이프라인되어 성능 향상을 이룰 수 있다. 일 실시예에 따른 영상 복호화 장치(100)에서 수행되는 병렬-파이프라인 동작에 관한 상세한 설명은 도 5b를 참조하여 후술하기로 한다.
도 2는 일 실시예에 따른 영상 복호화 장치(200)의 읽기/쓰기 경로를 나타내는 블록도이다.
도 2를 참조하면, 영상 복호화 장치(200)는 엔트로피 복호화부(210), 역양자화/역변환부(220), 예측부(230), 필터링부(240) 및 메모리(260)를 포함한다. 도 2에 도시된 영상 복호화 장치(200)는 전술한 도 1의 영상 복호화 장치(100)와도 대응될 수 있다.
엔트로피 복호화부(210)는 메모리(260)에 액세스하여 압축된 비트스트림을 입력받기 위한 읽기 동작을 수행하고, 메모리(260)로부터 입력된 비트스트림을 엔트로피 복호화한다.
역양자화/역변환부(220)는 엔트로피 복호화된 비트스트림을 역양자화하고, 역양자화된 비트스트림을 역변환한다.
예측부(230)는 영상의 압축 방식이 인트라 예측 또는 인터 예측인지에 따라 인트라 예측 또는 인터 예측을 수행한다. 즉, 예측부(230)는 인트라 예측부(미도시) 및 움직임 보상부(250)를 포함한다. 인트라 예측부(미도시)는 인트라 예측을 수행하며, 움직임 보상부(250)는 영상의 압축 방식이 인터 예측인 경우에 메모리(260)에 저장된 참조 영상을 읽어와 움직임 보상을 수행한다. 여기서, 참조 영상은 용량이 크기 때문에 메모리(260)에 저장되며, 제어부(120)는 블록 그룹 단위로 메모리로의 액세스를 수행하여 참조 영상을 획득한다. 한편, 움직임 보상부(250)는 캐쉬(미도시)를 경유하여 제공되는 참조 영상 데이터를 이용하여 움직임 보상을 수행할 수도 있다. 캐쉬에 대한 상세한 설명은 도 3에서 후술하기로 한다.
필터링부(240)는 비트스트림의 복원시 발생할 수 있는 블록간의 블록킹 현상을 감소시키는 디블록킹 필터(Deblocking filter : DF)를 포함할 수 있다. 필터링부(240)는 디블록킹 필터링을 수행하는 엔진(미도시) 및 메모리에 데이터를 저장하기 위한 DMA(Direct Memory Access)(미도시)를 포함할 수 있다. 영상 복호화 장치(200)는 인터 모드 또는 인트라 모드 예측을 수행한 후 필터링부(240)의 플래그(flag)가 활성화되어 있으면, 필터링 후에 메모리(260)에 복원된 영상 데이터를 저장한다. 만약 필터링부(240)의 플래그가 활성화되어 있지 않다면, 인터 또는 인트라 모드 예측 후 바로 메모리(260)에 복원된 영상 데이터를 저장한다.
도 3은 일 실시예에 따른 영상 복호화 장치(300)의 캐쉬를 통한 참조 영상 데이터 획득 경로를 나타내는 블록도이다.
도 3을 참조하면, 영상 복호화 장치(300)는 제어부(310), 캐쉬 제어부(301), 메모리(320), 데이터 버스(330), 캐쉬(340), 움직임 보상부(350) 및 참조 영상 저장 확인부(360)를 포함한다. 영상 복호화 장치(300)는 캐쉬를 이용함으로써 데이터 버스의 점유 대역폭을 감소시킬 수 있다. 도 3에 도시된 영상 복호화 장치(300)는 전술한 도 1의 영상 복호화 장치(100) 및 도 2의 영상 복호화 장치(200)와 대응될 수 있다.
구체적으로 살펴보면, 캐쉬 제어부(301)는 데이터 버스(330)의 대역폭 중 영상 복호화 장치(300)가 이용가능한 대역폭을 고려하여, 캐쉬(340)에 주기적으로 저장될 데이터 단위의 크기를 결정한다. 예를 들어, 참조 영상 데이터의 저장 단위는 참조 블록의 크기 및 개수일 수 있다. 캐쉬 제어부(301)는 메모리(320)에 저장된 데이터 중 참조 영상 데이터의 저장 단위에 대응하는 데이터를 선택할 수 있다.
캐쉬(340)는 현재 주기의 움직임 추정 및 보상을 위한 참조 영상 데이터를 매스데이터(341)로서 저장하고 있으며, 다음 주기의 움직임 추정 및 보상을 위한 참조 영상 데이터를 업데이트 데이터(342)로서 저장한다. 일 실시예에 따른 캐쉬 제어부(301)는, 현재 주기의 움직임 추정 및 보상을 위한 참조 영상 데이터를 이미 이전 주기에 업데이트 데이터(342)로서 캐쉬(340)에 저장하여 현재 주기 이전에 캐쉬의 추정 및 보상 범위 만큼을 캐쉬에 채운다. 또한, 일 실시예에 따른 캐쉬 제어부(301)는, 다음 주기를 위해 선택된 데이터를 업데이트 데이터(342)로서 캐쉬(340)에 갱신하도록 제어할 수 있다.
움직임 보상부(350)의 작동을 위해서는 움직임 벡터 및 참조 인덱스(370)가 필요하다. 참조 영상 저장 확인부(360)는 입력된 움직임 벡터 및 참조 인덱스(370)에 대응하는 참조 영상 데이터가 캐쉬(340)에 저장되어 있는지 여부 및 저장된 위치를 확인하여, 움직임 보상부(350)에게 알려줄 수 있다. 움직임 보상부(350)는 움직임 벡터 및 참조 인덱스(370)에 기초하여 메모리(320), 캐쉬(340) 또는 양쪽 모두로부터 입력받은 참조 영상 데이터를 이용할 수 있다.
한편, 일 실시예에 따른 캐쉬(340)는 로컬 캐쉬(local cache)이거나 멀티-웨이 세트 연관 구조 캐쉬(multi-way set associative cache)의 형태일 수 있다. 멀티-웨이 세트 연관 구조의 캐쉬는 캐쉬의 각각의 인덱스 값과 연관된 다중 어레이(N-웨이 세트)의 메모리 위치들을 포함할 수 있다. 따라서, 멀티-웨이 세트 연관 구조의 캐쉬에 저장된 데이터 값은 데이터 값과 연관된 웨이 및 세트를 식별하는 인덱스 및 번호를 사용하여 배치될 수 있다. 일 실시예에 따른, 캐쉬 제어부(301)는 멀티-웨이 세트 연관 구조의 캐쉬를 구동시키기 위한 제어신호를 이용할 수 있으며, 제어신호는 인덱스 값 및 태그 값을 포함할 수 있다. 제어신호에 포함된 태그 값은 N-웨이 세트의 다수의 태그들과 비교될 수 있다. 여기서, 제어신호에 포함된 인덱스 값과 연관된 임의의 웨이 세트가 태그 값에 매칭하는 태그를 포함하지 않는 경우, 캐쉬 미스(cache miss)가 발생하고 캐쉬 미스된 데이터를 검색하기 위한 요청이 메모리(320)에 대해 이루어진다.
일 실시예에 따른 캐쉬(340)가 로컬 캐쉬인 경우, 움직임 보상부(350)는 참조 영상 데이터를 획득하기 위해 블록 그룹 단위로 로컬 캐쉬에 액세스할 수 있다.
일 실시예에 따른 캐쉬(340)가 멀티-웨이 세트 연관 구조 캐쉬인 경우, 참조 영상 저장 확인부(360)는 입력된 움직임 벡터 및 참조 인덱스(370)를 분석하고, 움직임 보상부(350)는 분석된 움직임 벡터 및 참조 인덱스에 기초하여 블록 그룹 단위로 멀티-웨이 세트 연관 구조 캐쉬에 액세스할 수 있다. 한편, 멀티-웨이 세트 연관 구조 캐쉬로의 액세스 과정에서 캐쉬 미스(cache miss)가 발생한 경우, 블록 그룹 단위의 움직임 벡터의 분석에 기초하여 캐쉬 미스된 블록 그룹에 대한 버스(bus)로의 다중 요청(multiple request)을 수행하여 멀티-웨이 세트 연관 구조 캐쉬를 업데이트할 수 있다.
도 4a는 영상 복호화 시스템의 블록 처리 단위를 나타내기 위한 도면이다.
새로운 영상 압축 기술이 제안됨에 따라 영상 코덱의 블록 처리 단위도 다양화되고 있다. 예를 들어, H.264의 경우 블록 처리 단위는 16×16이고, VP9의 경우 블록 처리 단위는 64×64이고, HEVC 표준의 경우 블록 처리 단위는 64×64, 32×32 또는 16×16이며, AVS2의 경우 블록 처리 단위는 64×64, 32×32 또는 16×16이다.
영상 복호화 시스템의 블록 처리 단위로, 고정된 사이즈의 블록을 이용할 수도 있으며 다양한 사이즈의 블록을 이용할 수도 있는데 각각은 장단점을 갖는다. 예컨대, 고정된 사이즈의 블록(예를 들어, 32×32 크기)으로 파이프라인 복호화 동작을 수행하는 경우 버퍼 메모리의 사이즈를 감소시킬 수 있는 장점이 있으나, 그보다 큰 사이즈(예를 들어, 64×64 크기)의 블록의 처리를 위한 제어가 복잡하고 작은 사이즈(예를 들어, 16×16 크기)의 블록을 실시간 처리하기 어렵다는 문제점을 갖는다. 한편, 다양한 사이즈의 블록(예를 들어, 64×64, 32×32, 16×16 크기)으로 파이프라인 복호화 동작을 수행하는 경우 제어가 용이하다는 장점이 있으나, 버퍼 메모리의 사이즈가 증가되어야 한다. 또한 작은 사이즈(예를 들어, 16×16 크기)의 블록을 실시간 처리하기 어렵다는 문제점 역시 갖는다.
도 4a를 참조하면, 크기가 64×64인 블록(410)과 크기가 32×32인 블록(420)이 도시된다. 크기 64×64의 블록(410)은 크기 4개의 32×32의 파티션 블록들로 분할되어 각 32×32의 파티션 블록에 대해 순차적인 데이터 처리가 수행된다. 한편, 크기 32×32의 블록(420)은 그 자체로 블록 처리의 단위가 될 수 있다. 즉, 일반적인 복호화 동작에서, 각각의 엔트로피 복호화, 역양자화 및 역변환, 인트라/인터 예측, 복원 및 필터링의 동작은 파티션 블록 또는 개별 블록 단위로 수행된다.
도 4b는 블록 단위로 병렬-파이프라인 복호화 동작이 수행되는 과정을 나타내기 위한 도면이다.
도 4b를 참조하면, 0번 블록(430), 1번 블록(431), 2번 블록(432) 및 3번 블록(433) 각각에 대한 데이터 처리 단계(stage)들이 병렬-파이프라인 방식으로 수행된다. 여기서, 데이터 처리 단계들은 복호화 과정으로서 엔트로피 복호화, 역양자화 및 역변환, 인트라/인터 예측, 복원 및 필터링 등의 단계를 포함할 수 있다.
엔트로피 복호화는 메모리로부터 입력된 비트스트림을 엔트로피 복호화하는 과정이며, 역양자화/역변환은 엔트로피 복호화된 비트스트림을 역양자화하고, 역양자화된 비트스트림을 역변환하는 과정이다. 인트라 예측은 메모리로부터 화면 내의 참조 영상을 읽어와서 예측을 수행하는 과정이며, 인터 예측은 메모리에 저장된 참조 영상을 읽어와 움직임 보상을 수행하는 과정이다. 여기서, 참조 영상은 용량이 크기 때문에 메모리에 저장되며, 캐쉬를 경유하여 제공될 수도 있다. 필터링은 비트스트림의 복원시 발생할 수 있는 블록간의 블록킹 현상을 감소시키는 디블록킹 필터링의 과정을 포함할 수 있다.
이하에서는, 병렬-파이프라인 복호화 동작이 수행되는 과정에 대해 상세히 설명하기로 한다. 영상 복호화 장치는 엔트로피 복호화, 역양자화/역변환, 움직임 보상 및 필터링 연산을 블록 단위 별로 주기에 따라 순차적으로 지연시켜 병렬로 수행하면서 동시에 각 프로세서 간의 데이터 전송을 파이프라인화한다. 예를 들어, 영상 복호화 장치는 이전 단에서 파싱된 비트스트림을 입력받아, 0번 블록(430)에 대해 엔트로피 복호화를 수행한다(ST1:0). 그리고, 엔트로피 복호화가 수행된 0번 블록(430)에 대한 비트스트림을 역양자화/역변환함과 동시에 1번 블록(431)에 대해 엔트로피 복호화를 수행한다(ST2:0, ST1:1). 또한, 영상의 압축 방식이 인터 예측인 경우 0번 블록(430)에 대해 움직임 보상을 수행함과 동시에 1번 블록(431)에 대해서는 역양자화/역변환을 수행하고, 2번 블록(432)에 대해서는 엔트로피 복호화를 수행한다(ST3:0, ST2:1, ST1:2). 또한, 블록킹 아티팩트를 제거하기 위해 움직임 보상이 수행된 0번 블록(430)에 대해 필터링을 수행함과 동시에 1번 블록(431)에 대해서는 움직임 보상을 수행하고, 2번 블록(432)에 대해서는 역양자화/역변환을 수행하고, 3번 블록(433)에 대해서는 엔트로피 복호화를 수행한다(ST4:0, ST3:1, ST2:2, ST1:3).
한편, 병렬-파이프라인 복호화 동작에서 각 복호화 동작을 수행하기 위해 각 블록에 대한 메모리 액세스가 요구될 수 있다. 메모리 액세스에는, 1) 엔트로피 복호화를 위한 메모리 액세스, 2) 각 블록 사이즈 별 인터 모드 예측을 위한 메모리 액세스, 3) 인트라 모드 예측을 위한 주변 블록의 메모리 액세스, 4) 필터링을 위한 메모리 액세스 및 5) 최종 리컨 이미지를 메모리에 쓰기 위한 액세스가 있다.
도 4b를 참조하면, 개별 블록 단위로 병렬-파이프라인 복호화 동작을 수행할 경우, 임의의 복호화 단계에서 N개의 블록에 대해 N번의 메모리 액세스가 발생하고, 그에 따른 버스 초기 지연(450)도 N개의 블록에 대해 N번 발생한다. 그런데, 영상 복호화 시스템에서 블록의 처리 단위가 다양화됨에 따라 더 작은 크기의 블록이 이용될 수 있게 되었다. 따라서, 만약 16×16과 같은 작은 사이즈의 블록을 데이터 처리 단위로 할 경우, 수행되어야 할 메모리 액세스의 횟수는 급증하고 그에 따른 버스 초기 지연 시간도 길어져서 영상 복호화의 실시간 처리가 어려워지는 문제점이 발생한다. 따라서, 초기 지연의 발생 횟수 및 초기 지연 시간을 감소시킨다면 시스템의 처리 속도를 향상시킬 수 있다.
도 5a는 일 실시예에 따른 영상 복호화 시스템의 블록 처리 단위를 나타내기 위한 도면이다.
도 5a를 참조하면, 크기가 16×16인 블록들의 집합(510, 511)이 도시된다. 일 실시예에 따른 영상 복호화 시스템에서는 하나 이상의 블록을 포함하는 블록 그룹이 데이터 처리의 수행 단위가 된다. 예를 들어, 크기 16×16의 블록 4개가 하나의 블록 그룹으로 이루어져 데이터 처리의 수행 단위가 될 수 있다. 예를 들어, 0번 내지 3번 블록으로 이루어진 블록 그룹이 1번째 블록 그룹(510)이고, 4번 내지 7번 블록으로 이루어진 블록 그룹이 2번째 블록 그룹(511)일 수 있다. 이 때, 일 실시예에 따른 복호화 동작에서 각각의 엔트로피 복호화, 역양자화 및 역변환, 인트라/인터 예측, 복원 및 필터링의 동작은 블록 그룹 단위로 수행된다.
도 5b는 일 실시예에 따른 블록 그룹 단위로 병렬-파이프라인 복호화 동작이 수행되는 과정을 나타내기 위한 도면이다.
도 5b를 참조하면, 각각의 블록 그룹들(520, 521)에 대한 데이터 처리 단계들이 병렬-파이프라인 방식으로 수행된다. 여기서, 데이터 처리 단계들은 복호화 과정으로서 엔트로피 복호화, 역양자화 및 역변환, 인트라/인터 예측, 복원 및 필터링 등의 단계를 포함할 수 있다.
이하에서는, 일 실시예에 따른 블록 그룹 단위로 병렬-파이프라인 복호화 동작이 수행되는 과정에 대해 상세히 설명하기로 한다. 영상 복호화 장치(100)는 엔트로피 복호화, 역양자화/역변환, 움직임 보상 및 필터링 연산을 블록 그룹(520, 521) 단위 별로 주기에 따라 순차적으로 지연시켜 병렬로 수행하면서 동시에 각 프로세서 간의 데이터 전송을 파이프라인화한다. 예를 들어, 일 실시에에 따른 영상 복호화 장치(100)는 이전 단에서 파싱된 비트스트림을 입력받아, 1번째 블록 그룹(520)에 대해 엔트로피 복호화를 수행한다(ST1:0,1,2,3). 그리고, 엔트로피 복호화가 수행된 1번째 블록 그룹(520)에 대한 비트스트림을 역양자화/역변환함과 동시에 2번째 블록 그룹(521)에 대해 엔트로피 복호화를 수행한다(ST2:0,1,2,3, ST1:4,5,6,7). 또한, 영상의 압축 방식이 인터 예측인 경우 1번째 블록 그룹(520)에 대해 움직임 보상을 수행함과 동시에 2번째 블록 그룹(521)에 대해서는 역양자화/역변환을 수행하고, 3번째 블록 그룹(미도시)에 대해서는 엔트로피 복호화를 수행한다(ST3:0,1,2,3, ST2:4,5,6,7, ST1:8,9,10,11). 또한, 블록킹 아티팩트를 제거하기 위해 움직임 보상이 수행된 1번째 블록 그룹(520)에 대해 필터링을 수행함과 동시에 2번째 블록 그룹(521)에 대해서는 움직임 보상을 수행하고, 3번째 블록 그룹(미도시)에 대해서는 역양자화/역변환을 수행하고, 4번째 블록 그룹(미도시)에 대해서는 엔트로피 복호화를 수행한다(ST4:0,1,2,3, ST3:4,5,6,7, ST2:8,9,10,11, ST1:12,13,14,15). 이 때, 위에서 설명한 각각의 블록 그룹은 각각 16×16 사이즈 블록 4개를 포함할 수 있다.
도 5b를 참조하면, 일 실시예에 따른 영상 복호화 장치(100)는 블록 그룹 단위로 병렬-파이프라인 복호화 동작을 수행하므로, 임의의 복호화 단계에서 N개의 블록을 포함하는 하나의 블록 그룹에 대해 버스 초기 지연(540)이 1번 발생한다. 즉, 개별 블록 단위로 병렬-파이프라인 복호화 동작을 수행하는 경우에 비해 버스 초기 지연이 N분의 1로 감소하게 된다.
이처럼, 일 실시예에 따른 영상 복호화 장치(100)는 블록 그룹 단위로 데이터를 처리하기 때문에, 메모리 액세스를 수행하는 과정에서 초기 지연의 발생 횟수를 감소시킬 수 있다. 초기 지연 발생 횟수의 감소는, 영상 복호화 장치(100)의 실시간 처리 속도 개선 및 동작 주파수의 효율적 가용에 따른 전력 소비 저감 등의 효과를 가져온다.
구체적으로 예를 들면, 3,840×2,176 크기의 고해상도 서비스를 제공하는 UHD(Ultra High Definition)에서 모든 블록의 단위가 16×16인 경우, 60 프레임률을 기준으로 한 프레임에 대해 초당 1,958,400개의 블록이 처리되어야 한다. 그리고, 영상 복호화 장치가 450MHz의 동작 주파수를 갖는다고 가정하면, 16×16 블록 1개를 처리할 때 가용한 주기(cycle)는 약 230 주기이고, 이 때 개별 블록에 대한 메모리 액세스에 의해 버스 초기 지연(bus initial delay) 시간이 약 150 주기 소비된다. 그런데, 만약 영상 복호화 장치가 16×16 블록 4개를 하나의 블록 그룹으로 설정하여 블록 그룹 단위로 메모리 액세스를 수행한다면, 버스 초기 지연 시간은 최대 4분의 1로 줄어들 수 있다. 즉, 초기 지연으로 소비되던 시간이 기존에는 프레임당 4,896,000 주기였던 것이 블록 그룹 단위로 처리함으로써 1,224,000 주기로 감소될 수 있다. 따라서, 처리 속도가 약 220MHz 개선되는 효과가 생긴다.
도 6은 일 실시예에 따른 영상의 복호화 방법을 설명하기 위한 흐름도이다.
도 6을 참조하면, 단계 S610에서 영상 복호화 장치(100)는 부호화된 영상의 비트스트림에 포함된 하나 이상의 블록의 크기 정보를 확인한다.
단계 S620에서 영상 복호화 장치(100)는 하나 이상의 블록의 크기 정보에 기초하여 하나 이상의 블록을 그룹화하여 복호화를 수행할지 여부를 결정한다.
단계 S630에서 영상 복호화 장치(100)는 하나 이상의 블록의 크기 정보에 기초하여 하나 이상의 블록을 포함하는 블록 그룹을 설정한다.
단계 S640에서 영상 복호화 장치(100)는 블록 그룹 단위로 병렬-파이프라인 복호화 동작을 수행하도록 블록 그룹 단위로 외부 메모리로의 액세스를 수행한다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명이 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이와 균등하거나 또는 등가적인 변형 모두는 본 발명 사상의 범주에 속한다 할 것이다. 또한, 본 발명에 따른 시스템은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다.
또한, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등을 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.

Claims (19)

  1. 블록 그룹 단위의 메모리 액세스를 통한 영상의 복호화 방법에 있어서,
    부호화된 영상의 비트스트림에 포함된 하나 이상의 블록의 크기 정보를 확인하는 단계;
    상기 하나 이상의 블록의 크기 정보에 기초하여 상기 하나 이상의 블록을 그룹화하여 복호화를 수행할지 여부를 결정하는 단계;
    상기 하나 이상의 블록의 크기 정보에 기초하여 상기 하나 이상의 블록을 포함하는 블록 그룹을 설정하는 단계; 및
    상기 블록 그룹 단위로 병렬-파이프라인 복호화 동작이 수행되도록 상기 블록 그룹 단위로 메모리로의 액세스를 수행하는 단계를 포함하는, 영상의 복호화 방법.
  2. 제 1 항에 있어서,
    상기 병렬-파이프라인 복호화 동작은, 엔트로피 복호화, 역양자화 및 역변환, 인트라/인터 예측, 복원 및 필터링을 상기 블록 그룹 단위 별로 주기에 따라 순차적으로 지연되어 병렬 처리하는 동작을 포함하는, 영상의 복호화 방법.
  3. 제 1 항에 있어서,
    상기 하나 이상의 블록을 그룹화하여 복호화를 수행할지 여부를 결정하는 단계는,
    상기 하나 이상의 블록의 각 블록의 크기가 16×16 보다 작거나 16×16 인 경우, 상기 하나 이상의 블록을 그룹화하도록 결정하는 단계; 및
    상기 하나 이상의 블록의 각 블록의 크기가 16×16 보다 큰 경우, 상기 하나 이상의 블록을 그룹화하지 않도록 결정하는 단계를 포함하는, 영상의 복호화 방법.
  4. 제 1 항에 있어서,
    상기 블록 그룹은 16×16 크기를 갖는 4 개의 블록을 포함하는, 영상의 복호화 방법.
  5. 제 1 항에 있어서,
    상기 블록 그룹 단위로 메모리로의 액세스를 수행하는 단계는,
    움직임 보상을 수행하기 위해 상기 블록 그룹 단위로 상기 메모리로부터 참조 영상 데이터를 획득하는 단계를 포함하는, 영상의 복호화 방법.
  6. 제 5 항에 있어서,
    상기 블록 그룹 단위로 상기 메모리로부터 참조 영상 데이터를 획득하는 단계는,
    상기 블록 그룹에 포함된 각 블록에 대응하는 참조 영상 데이터를 요청하는 요청 신호를 결합하여 다중(multiple) 요청 신호를 생성하는 단계; 및
    상기 다중 요청 신호를 통해 상기 메모리에 액세스하여, 한 주기에 상기 각 블록에 대응하는 상기 참조 영상 데이터를 획득하는 단계를 포함하는, 영상의 복호화 방법.
  7. 제 5 항에 있어서,
    상기 방법은,
    상기 블록 그룹 단위로 움직임 벡터를 확인하는 단계; 및
    상기 움직임 벡터가 정수 화소가 아닌 반화소 또는 1/4화소를 나타내면, 상기 참조 영상 데이터에 대하여 보간을 수행하는 단계를 더 포함하는, 영상의 복호화 방법.
  8. 제 5 항에 있어서,
    상기 블록 그룹 단위로 메모리로부터 참조 영상 데이터를 획득하는 단계는,
    상기 참조 영상 데이터를 획득하기 위해 상기 블록 그룹 단위로 로컬 캐쉬에 액세스하는 단계를 포함하는, 영상의 복호화 방법.
  9. 제 5 항에 있어서,
    상기 블록 그룹 단위로 메모리로부터 참조 영상 데이터를 획득하는 단계는,
    상기 블록 그룹 단위로 움직임 벡터를 분석하는 단계;
    상기 분석에 기초하여 상기 참조 영상 데이터를 획득하기 위해 상기 블록 그룹 단위로 멀티-웨이 세트 연관 구조 캐쉬(multi-way set associative cache)에 액세스하는 단계; 및
    상기 멀티-웨이 세트 연관 구조 캐쉬로의 액세스 과정에서 캐쉬 미스(cache miss)가 발생한 경우, 상기 블록 그룹 단위의 상기 움직임 벡터의 분석에 기초하여 캐쉬 미스된 블록 그룹에 대한 버스(bus)로의 다중 요청(multiple request)을 수행하여 상기 멀티-웨이 세트 연관 구조 캐쉬를 업데이트하는, 영상의 복호화 방법.
  10. 블록 그룹 단위의 메모리 액세스를 수행하는 영상 복호화 장치에 있어서,
    블록 그룹 단위로 병렬-파이프라인 복호화 동작을 수행하는 영상 복호화부; 및
    상기 영상 복호화부로부터 복호화된 데이터를 저장하거나 상기 영상 복호화부의 복호화를 위해 저장된 데이터를 출력하는 메모리를 포함하고,
    상기 영상 복호화부는,
    부호화된 영상의 비트스트림에 포함된 하나 이상의 블록의 크기 정보를 확인하고, 상기 하나 이상의 블록의 크기 정보에 기초하여 상기 하나 이상의 블록을 그룹화하여 복호화를 수행할지 여부를 결정하고, 상기 하나 이상의 블록의 크기 정보에 기초하여 상기 하나 이상의 블록을 포함하는 상기 블록 그룹을 설정하며, 상기 영상 복호화부가 상기 블록 그룹 단위로 병렬-파이프라인 복호화 동작이 수행되도록 상기 블록 그룹 단위로 메모리로의 액세스를 수행하는 제어부를 포함하는, 영상 복호화 장치.
  11. 제 10 항에 있어서,
    상기 병렬-파이프라인 복호화 동작은, 엔트로피 복호화, 역양자화 및 역변환, 인트라/인터 예측, 복원 및 필터링을 상기 블록 그룹 단위 별로 주기에 따라 순차적으로 지연되어 병렬 처리하는 동작을 포함하는, 영상 복호화 장치.
  12. 제 10 항에 있어서,
    상기 제어부는,
    상기 하나 이상의 블록의 각 블록의 크기가 16×16 보다 작거나 16×16 인 경우 상기 하나 이상의 블록을 그룹화하도록 결정하고, 상기 하나 이상의 블록의 각 블록의 크기가 16×16 보다 큰 경우 상기 하나 이상의 블록을 그룹화하지 않도록 결정하는, 영상 복호화 장치.
  13. 제 10 항에 있어서,
    상기 블록 그룹은 16×16 크기를 갖는 4 개의 블록을 포함하는, 영상 복호화 장치.
  14. 제 10 항에 있어서,
    상기 제어부는,
    움직임 보상을 수행하기 위해 상기 블록 그룹 단위로 상기 메모리로부터 참조 영상 데이터를 획득하는, 영상 복호화 장치.
  15. 제 14 항에 있어서,
    상기 제어부는,
    상기 블록 그룹에 포함된 각 블록에 대응하는 참조 영상 데이터를 요청하는 요청 신호를 결합하여 다중(multiple) 요청 신호를 생성하고, 상기 다중 요청 신호를 통해 상기 메모리에 액세스하여, 한 주기에 상기 각 블록에 대응하는 상기 참조 영상 데이터를 획득하는, 영상 복호화 장치.
  16. 제 14 항에 있어서,
    상기 영상 복호화부는,
    상기 블록 그룹 단위로 움직임 벡터를 확인하고, 상기 움직임 벡터가 정수 화소가 아닌 반화소 또는 1/4화소를 나타내면, 상기 참조 영상 데이터에 대하여 보간을 수행하는, 영상 복호화 장치.
  17. 제 14 항에 있어서,
    상기 제어부는,
    상기 참조 영상 데이터를 획득하기 위해 상기 블록 그룹 단위로 로컬 캐쉬에 액세스하는, 영상 복호화 장치.
  18. 제 14 항에 있어서,
    상기 제어부는,
    상기 블록 그룹 단위로 움직임 벡터를 분석하고, 상기 분석에 기초하여 상기 참조 영상 데이터를 획득하기 위해 상기 블록 그룹 단위로 멀티-웨이 세트 연관 구조 캐쉬(multi-way set associative cache)에 액세스하며, 상기 멀티-웨이 세트 연관 구조 캐쉬로의 액세스 과정에서 캐쉬 미스(cache miss)가 발생한 경우, 상기 블록 그룹 단위의 상기 움직임 벡터의 분석에 기초하여 캐쉬 미스된 블록 그룹에 대한 버스(bus)로의 다중 요청(multiple request)을 수행하여 상기 멀티-웨이 세트 연관 구조 캐쉬를 업데이트하는, 영상 복호화 장치.
  19. 제 1 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020150155280A 2015-11-05 2015-11-05 복수개의 블록 기반의 파이프라인을 이용한 데이터 처리 속도 개선 장치 및 그 동작 방법 KR102171119B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150155280A KR102171119B1 (ko) 2015-11-05 2015-11-05 복수개의 블록 기반의 파이프라인을 이용한 데이터 처리 속도 개선 장치 및 그 동작 방법
US15/251,476 US10244247B2 (en) 2015-11-05 2016-08-30 Enhanced data processing apparatus employing multiple-block based pipeline and operation method thereof
CN201610816552.9A CN106686380B (zh) 2015-11-05 2016-09-12 采用基于多块的流水线的增强型数据处理设备及操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150155280A KR102171119B1 (ko) 2015-11-05 2015-11-05 복수개의 블록 기반의 파이프라인을 이용한 데이터 처리 속도 개선 장치 및 그 동작 방법

Publications (2)

Publication Number Publication Date
KR20170053031A true KR20170053031A (ko) 2017-05-15
KR102171119B1 KR102171119B1 (ko) 2020-10-28

Family

ID=58664046

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150155280A KR102171119B1 (ko) 2015-11-05 2015-11-05 복수개의 블록 기반의 파이프라인을 이용한 데이터 처리 속도 개선 장치 및 그 동작 방법

Country Status (3)

Country Link
US (1) US10244247B2 (ko)
KR (1) KR102171119B1 (ko)
CN (1) CN106686380B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106101847A (zh) * 2016-07-12 2016-11-09 三星电子(中国)研发中心 全景视频交互传输的方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5909638A (en) * 1996-08-06 1999-06-01 Maximum Video Systems, Inc. High speed video distribution and manufacturing system
WO2012046435A1 (ja) * 2010-10-04 2012-04-12 パナソニック株式会社 画像処理装置、画像符号化方法および画像処理方法
US20130322766A1 (en) * 2012-05-30 2013-12-05 Samsung Electronics Co., Ltd. Method of detecting global motion and global motion detector, and digital image stabilization (dis) method and circuit including the same

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0798633B1 (en) 1996-03-29 2005-06-08 Matsushita Electric Industrial Co., Ltd. Data processor having a variable number of pipeline stages
JP3356663B2 (ja) * 1997-10-22 2002-12-16 松下電器産業株式会社 画像符号化装置、画像符号化方法および画像符号化プログラムを記録した記録媒体
JP4384130B2 (ja) * 2006-03-28 2009-12-16 株式会社東芝 動画像復号方法及び装置
BRPI0715770B1 (pt) * 2006-08-25 2020-03-10 Interdigital Vc Holdings, Inc. Método, aparelho e mídia de armazenamento para particionamento com menor resolução
JP2009038501A (ja) * 2007-07-31 2009-02-19 Toshiba Corp 復号化装置および復号方法
KR101712097B1 (ko) * 2009-08-19 2017-03-03 삼성전자 주식회사 유연한 직교 변환에 기초한 영상 부호화, 복호화 방법 및 장치
CN101710986B (zh) * 2009-11-18 2012-05-23 中兴通讯股份有限公司 基于同构多核处理器的h.264并行解码方法和系统
US9973768B2 (en) * 2010-03-16 2018-05-15 Texas Instruments Incorporated CABAC decoder with decoupled arithmetic decoding and inverse binarization
JP5393573B2 (ja) * 2010-04-08 2014-01-22 株式会社Nttドコモ 動画像予測符号化装置、動画像予測復号装置、動画像予測符号化方法、動画像予測復号方法、動画像予測符号化プログラム、及び動画像予測復号プログラム
KR101387467B1 (ko) * 2010-06-07 2014-04-22 (주)휴맥스 고해상도 영상의 부호화/복호화 방법 및 이를 수행하는 장치
US9247261B2 (en) * 2011-03-04 2016-01-26 Vixs Systems, Inc. Video decoder with pipeline processing and methods for use therewith
US9025660B2 (en) * 2011-03-04 2015-05-05 Vixs Systems, Inc. Video decoder with general video decoding device and methods for use therewith
US9516379B2 (en) * 2011-03-08 2016-12-06 Qualcomm Incorporated Buffer management in video codecs
US20130177070A1 (en) * 2012-01-11 2013-07-11 Qualcomm Incorporated Significance map support for parallel transform coefficient processing in video coding
KR101172346B1 (ko) 2012-02-03 2012-08-14 이노뎁 주식회사 데이터 처리 속도를 개선한 데이터 처리장치 및 그 동작방법
US20130272409A1 (en) * 2012-04-12 2013-10-17 Qualcomm Incorporated Bandwidth reduction in video coding through applying the same reference index
US9270999B2 (en) * 2013-09-25 2016-02-23 Apple Inc. Delayed chroma processing in block processing pipelines
US10757437B2 (en) * 2014-07-17 2020-08-25 Apple Inc. Motion estimation in block processing pipelines

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5909638A (en) * 1996-08-06 1999-06-01 Maximum Video Systems, Inc. High speed video distribution and manufacturing system
WO2012046435A1 (ja) * 2010-10-04 2012-04-12 パナソニック株式会社 画像処理装置、画像符号化方法および画像処理方法
US20130322766A1 (en) * 2012-05-30 2013-12-05 Samsung Electronics Co., Ltd. Method of detecting global motion and global motion detector, and digital image stabilization (dis) method and circuit including the same

Also Published As

Publication number Publication date
US10244247B2 (en) 2019-03-26
US20170134740A1 (en) 2017-05-11
CN106686380A (zh) 2017-05-17
KR102171119B1 (ko) 2020-10-28
CN106686380B (zh) 2021-06-01

Similar Documents

Publication Publication Date Title
US8279942B2 (en) Image data processing apparatus, image data processing method, program for image data processing method, and recording medium recording program for image data processing method
US8218641B2 (en) Picture encoding using same-picture reference for pixel reconstruction
US8218640B2 (en) Picture decoding using same-picture reference for pixel reconstruction
KR100994979B1 (ko) 인트라-인코딩된 비디오의 병렬 디코딩
US20150373368A1 (en) Method and apparatus for processing video
KR100772379B1 (ko) 외부 메모리 장치, 그 영상 데이터 저장 방법, 이를 이용한영상 처리 장치
US20170188033A1 (en) Method and Apparatus of Bandwidth Estimation and Reduction for Video Coding
US20120307892A1 (en) System and Method for Decoding using Parallel Processing
US9854252B2 (en) Method and apparatus of HEVC de-blocking filter
US8611687B2 (en) Method and apparatus for encoding and decoding image using flexible orthogonal transform
US8660191B2 (en) Software video decoder display buffer underflow prediction and recovery
KR20110071231A (ko) 부호화 방법, 복호화 방법 및 장치
US20100118982A1 (en) Method and apparatus for transrating compressed digital video
US20110249742A1 (en) Coupled video pre-processor and codec including reference picture filter that minimizes coding expense during pre-processing mode transitions
US20100104015A1 (en) Method and apparatus for transrating compressed digital video
JP2007524309A (ja) ビデオ復号の方法
US20170019679A1 (en) Hybrid video decoding apparatus for performing hardware entropy decoding and subsequent software decoding and associated hybrid video decoding method
US11627321B2 (en) Adaptive coding of prediction modes using probability distributions
KR20120117613A (ko) 동영상 부호화 장치 및 방법
KR100968371B1 (ko) 영상의 복호화 방법 및 장치
JP6569665B2 (ja) 画像復号装置、画像復号方法、及び集積回路
JP2007507128A (ja) 参照ピクチャのリフレッシュを遅延させて行うビデオ画像の符号化および復号化
KR20050078706A (ko) 메모리 액세스 방법 및 메모리 액세스 장치
US20140321528A1 (en) Video encoding and/or decoding method and video encoding and/or decoding apparatus
US20180278948A1 (en) Tile-based processing for video coding

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