KR20070111467A - 중간 루프 필터 데이터를 저장하는 스크래치 패드 - Google Patents

중간 루프 필터 데이터를 저장하는 스크래치 패드 Download PDF

Info

Publication number
KR20070111467A
KR20070111467A KR1020077017514A KR20077017514A KR20070111467A KR 20070111467 A KR20070111467 A KR 20070111467A KR 1020077017514 A KR1020077017514 A KR 1020077017514A KR 20077017514 A KR20077017514 A KR 20077017514A KR 20070111467 A KR20070111467 A KR 20070111467A
Authority
KR
South Korea
Prior art keywords
blocks
block
deblocking
smoothing
scratch pad
Prior art date
Application number
KR1020077017514A
Other languages
English (en)
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 어드밴스드 마이크로 디바이시즈, 인코포레이티드
Publication of KR20070111467A publication Critical patent/KR20070111467A/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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • 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
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • 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/117Filters, e.g. for pre-processing or post-processing
    • 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
    • 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/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)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

비디오 디코딩 블록에 인-루프 필터 및 스크래치 패드 메모리를 제공함으로써, 프로세서 및 비디오 데이터를 디코드하는 비디오 디코딩 하드웨어 블록의 조합으로 비디오 프로세싱 장치 및 방법이 구현되는바, 상기 인-루프 필터는 매크로 블록-기반 방식으로 오버랩 평활화 및 디블록킹의 구분적 처리를 좀더 효율적으로 수행하며, 이는 프레임-기반의 방법에 비해 훨씬 더 효율적인 알고리즘이다.
구분 처리, 오버랩, 평활화, 디블록킹, 스크래치 패드 메모리

Description

중간 루프 필터 데이터를 저장하는 스크래치 패드{SCRATCH PAD FOR STORING INTERMEDIATE LOOP FILTER DATA}
본 발명은 비디오 프로세싱 기술에 관한 것이다. 일 측면으로 본 발명은 디지탈 비디오 정보의 압축해제(decompression)에 관한 것이다.
비디오 정보는 방대한 양의 저장 공간을 필요로 하기 때문에, 비디오 정보는 압축되는 것이 일반적이다. 따라서, 예를 들면, CD-ROM 또는 DVD 에 저장되어 있는 압축된 비디오 정보를 디스플레이하기 위해서는, 압축된 비디오 정보가 압축해제되어야만 압축해제된 비디오 정보가 제공될 수 있다. 이후, 압축해제된 비디오 정보는 비트 스트림(bit stream)으로 디스플레이 장치에 제공된다. 비디오 정보의 압축해제된 비트 스트림은, 디스플레이 상의 픽셀 위치들에 상응하는 메모리 위치들에 비트맵(bit map) 으로서 저장되는 것이 일반적이다. 디스플레이 상에서 정보의 한 화면(single screen)을 제공하기 위해 필요한 비디오 정보는 프레임이라 지칭된다. 일련의 프레임들을 디스플레이함으로써 동영상(motion video)을 제공하기 위해서, 압축된 비디오 정보를 빠르고 효율적으로 디코딩(decoding)하는 것이 많은 비디오 시스템의 목표이다.
기록 매체, 디바이스들, 및 가령, 비디오 압축과 같은 데이터 처리에 관한 다양한 관점들을 표준화하는 것은, 이러한 기술 및 이들의 응용예들이 지속적으로 발전하기 위해서 매우 바람직한 일이다.
비디오 정보를 압축 및 압축해제하는 많은 압축(압축해제) 표준들이 개발되었으며 또는 개발중에 있는바, 이러한 것들로는 비디오 인코딩 및 디코딩을 위한 MPEG(Motion Picture Expert Group) 표준들(예를 들면, MPEG-1, MPEG-2, MPEG-3, MPEG-4, MPEG-7, MPEG-21)이 있으며, 또는 윈도우 미디어 비디오 압축 표준(Window Media Video compression standard)(예를 들면, WMV9)를 들 수 있다. MPEG 및 WMV 표준들 각각은, 마치 본 명세서에 개시된 것 처럼 전체로서 본 명세서에서 참조된다.
일반적으로, 비디오 압축 기술들은, 비디오 프레임들에 나타나는 공간적(spatial) 리던던시 및 시간적(temporal) 리던던시 모두를 감소시킴으로써 비디오 정보를 압축하도록 작용하는, 인트라프레임 압축(intraframe compression) 및 인터프레임 압축(interframe compression)을 포함한다. 인트라프레임 압축 기술들은, 프레임을 압축하기 위해서 프레임에 내포된 정보만을 사용하는바, 이는 I-프레임이라고 호칭된다. 인터프레임 압축 기술들은, 선행 및/또는 후속 프레임들과 관련된 프레임들을 압축하는바, 이들은 예측된 프레임들, P-프레임들, 또는 B 프레임들 이라고 호칭된다. 인트라프레임 및 인터프레임 압축 기술들은 통상적으로 공간(spatial) 또는 블록 기반(block-based)의 인코딩을 사용하는바, 이에 의해 하나의 비디오 프레임이 인코딩을 위한 블록들로 분할된다(또한, 블록 변환 프로세스라고도 호칭되기도 한다). 예를 들면, 하나의 I-프레임은 8×8 블록들로 분할된다. 상기 블록들은, 계수(coefficient)를 특정한 코사인 기반 함수의 진폭으로 인코딩하는 이산 코사인 변환(discrete cosine transformation : DCT) 코딩 체계를 이용하여 코딩되거나, 또는 몇몇 다른 변환들[예를 들면, 정수(integer) 변환]을 이용하여 코딩된다. 변환된 계수들은 이후 양자화되며, 0이 아닌(nonzero) 진폭 레벨들을 갖는 계수들과 0 인 진폭 레벨을 갖는 계수들의 부분열(run or subsequence)이 생성된다. 양자화된 계수들은 이후, 0 인 계수들의 기다란 런(run)들을 압축하기 위해서, 런(run) 레벨 인코딩(또는 런 길이 인코딩) 된다.
이후, 이러한 결과물들은, 코드워드들을 인코딩될 값들에 할당하는 통계적인 코딩 기법을 사용하는 가변 길이 코더(variable length coder : VLC)에서 엔트로피(entropy) 코딩되거나 또는, 다른 엔트로피 코딩 기법들[가령, 콘텍스트 기반의 적응형 이진 산술 코딩(Context-based Adaptive Binary Arithmetic Coding : CABCA), 콘텍스트 적응형 가변 길이 코딩(Context Adaptive Variable Length Coding : CAVLC) 및 이와 유사한 것들]을 이용하여 엔트로피 코딩된다. 높은 발생빈도(frequency of occurrence)를 갖는 값들은 짧은 코드워드들에 할당되며, 낮은 발생빈도를 갖는 값들은 긴 코드워드들에 할당된다. 평균적으로는, 더 자주 발생하는 짧은 코드워드들이 우세하게 되며, 그 결과 코드 스트링은 원본 데이터보다 더 짧아진다. 따라서, 공간적 또는 블록 기반의 인코딩 기법들은 하나의 프레임에 관련된 디지털 정보를 압축한다. 일련의 프레임들과 관련된 디지털 정보들을 압축하기 위해서, 비디오 압축 기술들은 P-프레임들 및/또는 B-프레임들을 사용하는바, 이는 연속적인 프레임들 사이에는 시간적인 상관성(correlation)이 있다는 사실을 활용하기 위함이다. 비록, 서로 다른 구현예에서는 서로 다른 블록 구성들을 사용할 수도 있지만, 인터프레임 압축 기술들은 서로 다른 프레임들 간의 차이점들을 식별할 것이며, 이후 DCT, 양자화, 런 길이 및 엔트로피 인코딩 기법을 사용하여 이러한 차이점 정보를 공간적으로 인코딩할 것이다. 예를 들면, P-프레임은 16×16 매크로 블록들로 분할되며[예를 들면, 4개의 8×8 휘도(luminance) 블록들 및 2개의 8×8 색차(chrominance) 블록들] 그리고 상기 매크로 블록들이 압축된다. 인터프레임 또는 인트라프레임 압축 기술들이 사용되는가에 관계없이, 비디오 데이터를 인코딩하는데 공간적인 또는 블록-기반의 인코딩 기법들을 사용한다는 것은, 압축된 비디오 데이터가 가변 길이 인코딩되었다는 것을 의미하며, 전술한 바와같은 블록-기반의 압축 기법들을 사용하여 다르게 압축되었다는 것을 의미한다.
수신기 측 또는 재생(playback) 디바이스 측에서는, 블록 변환들로 처리되었던 비디오 데이터를 디코딩하기 위해 상기의 압축 단계들이 거꾸로 수행된다(reverse). 도1은 비디오 정보를 압축해제하기 위한 통상적인 시스템(30)을 도시한 도면으로, 상기 시스템은 입력 스트림 디코딩부(35), 모션(motion) 디코딩부(38), 합산기(39), 프레임 버퍼(40), 및 디스플레이(41)를 포함하여 구성된다. 입력 스트림 디코딩부(35)를 살펴보면, 압축된 비디오 정보의 스트림을 입력 버퍼(31)에서 수신하며, VLC 디코더(32)에서 가변 길이 디코딩을 수행하며, 역양자화기(33)에서 지그재그 및 양자화를 거꾸로 수행하며, 역 DCT 유닛(34)에서 DCT 변환을 거꾸로 수행하며, 정적으로(staticly) 압축해제된 비디오 정보의 블록들을 합산기(39)에 제공한다. 모션 디코딩부(38)에서는, 예전 화면(previous picture) 데이 터의 복사본[예전 화면(picture) 저장 버퍼(36)에 저장되어 있는]과 VLC 디코더(32)로부터의 모션 정보를 모션 보상 유닛(37)이 수신하며, 그리고 모션-보상된 픽셀들을 합산기(39)로 제공한다. 합산기(39)는 정적으로(staticly) 압축해제된 비디오 정보 및 모션 보상된 픽셀들을 수신하며, 압축해제된 픽셀들을 프레임 버퍼(40)에 제공하는바, 이후 프레임 버퍼는 상기 정보를 디스플레이(41)에 제공한다.
통상적인 비디오 인코더 및 디코더 디자인에서는, 블록-기반의 변환, 모션 보상, 양자화 및/또는 또 다른 손실성(lossy) 처리 단계들로부터, 블록킹 아티팩트(blocking artifact)(블록들 간의 현저한 불연속들)가 프레임으로 유입될 수 있다. 블록킹 아티팩트들을 감소시키기 위한 종래의 시도들은, 블록들 사이의 경계들을 평활화함으로서 프레임들을 처리하는, 오버랩 평활화(overlap smoothing) 또는 디블록킹 필터링(deblocking filtering)(인-루프 또는 프로세싱 전에)을 사용하였다. 예를 들어, WMV9 표준의 경우, 블록킹 아티팩트들을 감소시키기 위해, 오버랩 평활화 및 인 루프(in loop) 디블록킹이 전체 화면(whole picture) 상에서 프로세싱된다는 점이 상술되었다. WMV9 디코딩의 경우, 오버랩 평활화는 8×8 블록 경계들 상에서만 수행되는바, 전체 프레임에 대해 수직 방향으로 평활화가 시작되며, 이후 평활화는 전체 프레임에 대해 수평 방향으로 수행된다. 다음으로, 인루프 디블록킹은, 활성화되었을 때, 다음과 같은 순서로 수행된다. (ⅰ) 최상층 라인으로부터 시작하여 프레임내의 모든 8×8 블록의 수평 경계선들이 필터링되며; (ⅱ) 최상층 라인으로부터 시작하여 프레임내의 모든 8×4 서브 블록의 수평 경계선들이 필터링되며; (ⅲ) 가장 좌측의 라인으로부터 시작하여 모든 8×8 블록의 수직 경계선들이 필터링되며; (ⅳ) 가장 좌측의 라인으로부터 시작하여 모든 4×8 서브 블록의 수직 경계선들이 필터링된다. 종래의 방법들은 전체 프레임에 대해서 2개의 패스(pass)들을 사용하였는바, 제 1 패스는 오버랩 평활화를 수행하는 것이며, 제 2 단계는 인-루프(in-loop) 디블록킹을 위한 것이다. 개별적인 단계를 수행하느냐 마느냐를 결정할 때에 적용되는 또 다른 요구 사항들(예를 들면, 파라미터 PQUANT 및 블록 타입들과 관련된)이 있을 수도 있지만, 이러한 프로세스들의 목적은 16×16 매크로 블록, 8×8 블록들, 또는 4×4 서브 블록들의 가장자리(edge)들을 평활화하는 것이며, 따라서, 2차원 변환 및 양자화에 의한 아티팩트들(blockiness 등)이 제거된다.
비디오 압축해제를 처리하는 프로세서 기반의(processor-based) 접근법들의 경우, 평활화 또는 디블록킹 기능을 부가한다는 것은 계산량이 매우 과도한 필터링 프로세스이다. 이러한 종류의 프로세싱은, 프레임(예를 들면, 640×480 픽셀의 VGA 사이즈는 307 kByte에 상당한다)을 유지할 수 있는 매우 큰 메모리 버퍼가 존재할 때에, 소프트웨어 상에서 수행될 수 있다. 다른 한편으로, 디코딩을 위한 하드웨어 기반의 접근법들의 경우, 평활화 및 디블록킹이 동시에 수행되지 못했으며, 그리고 프레임 전체에 대해서 디블록킹이 수행되었는바, 이는 매우 큰 국부(local) 메모리를 필요로 하고, 상당한 정도의 버스 대역폭 요구들을 강요하며, 그리고 메모리 액세스 시간을 희생한다. 결과적으로, 압축해제 방법들에 관련된 프로세싱 요구들을 감소시켜야할 필요성 및 특히, 오버랩 평활화 및/또는 디블록킹 필터 동작들을 포 함하는 압축해제 동작들을 향상시켜야할 필요성이 상당부분 존재한다.
첨부된 도면들 및 후속으로 상술될 상세한 설명을 참조하여 본 출원의 나머지 부분들을 검토한 이후에, 종래 시스템의 또 다른 단점들 및 제한 사항들은 해당 기술분야의 당업자에게 자명해질 것이다.
비디오 압축해제에 있어 소프트웨어 및 하드웨어의 조합을 사용함에 의해, 서로 다른 다양한 비디오 압축 체계(scheme)를 빠르고 효과적으로 처리할 수 있는 유연한 압축해제 시스템이 제공된다. 상기 유연한 압축해제 시스템은, 프론트 엔트(front end) 압축해제 단계들을 수행하는 프로세서와 백 엔드(back end) 압축해제 단계들을 수행하는 비디오 가속기를 포함한다. 비디오 프레임 데이터 상에 오버랩 평활화와 인-루프 디블록킹 필터 동작을 수행하는 비디오 가속기에서 메모리 대역폭 요구를 감소시키기 위해서, 상기 인-루프 필터는, 스크래치 패드 메모리 또는 저장 디바이스에 접속되는바, 이는 매크로블록-기반 방식에서 오버랩 평활화 및 인-루프 디블록킹의 구분적(piecewise) 프로세싱을 용이하게 한다. 매크로 블록 기반의 방식으로 필터링 동작의 구분적 프로세싱을 수행하는 스크래치 패드를 사용하는 것은, 프레임 기반의 방법보다 더 효율적이다. 스크래치 패드 메모리의 사이즈는 프레임의 폭(width)과 관련되어 있으므로, 온-칩(on-chip) 메모리의 양(amount)은 감소된다. 예를 들면, 스크래치 패드 메모리의 사이즈는, 비디오 데이터의 한 프레임으로부터 부분적으로 필터링된 블록들의 하나의 행(row)만을 유지할 정도의 사이즈일 수도 있다.
본 발명의 하나 이상의 실시예에 따르면, 비디오 프로세싱 시스템, 장치 및 방법이 제공되는바, 이에 의해 프로세서 및 비디오 디코드 회로는 복수의 매크로 블록들로의 블록 변환들로 처리된 비디오 데이터를 디코딩한다. 디코드 동작에 관하여, 적어도 하나의 집적회로 상에 제공되는 인-루프 필터 및 스크래치 패드 메모리가, 제 1 매크로 블록내의 선택된 픽셀 데이터를 평활화 및 디블록킹함으로써 하나 이상의 완료된 블록들 및 하나 이상의 부분적으로 필터링된 블록들을 생성하는 구분적 프로세싱을, 수행하기 위해 사용되는바, 적어도 하나의 부분적으로 필터링된 블록들은 제어 데이터 및 픽셀 데이터(스크래치 패드 메모리에 저장됨)를 내포하고 있다. 그 결과, 이전에 프로세싱된 매크로 블록에 인접한 임의의 블록은, 오버랩 평활화 및 디블록킹을 위해 완전하게 필터링될 수도 있으며 이후 제 1 필터링 동작동안에 완료된 블록으로서 출력될 수도 있다. 반면에 후속으로 처리된 매크로 블록에 인접한 블록은 오버랩 평활화 및 디블록킹을 위해 부분적으로 필터링될 수도 있으며 이후 부분적으로 필터링된 블록으로서 스크래치 패드 메모리에 저장될 수도 있다. 스크래치 패드 메모리는, 제 1 매크로 블록에서 픽셀 데이터를 평활화 및 디블록킹하기 위해 사용되는 부분적으로 필터링된 블록을 제공하기 위해 인-루프 필터에 의해 사용되며, 상기 페치된 부분적으로 필터링된 블록은, 이전 매크로 블록을 프로세싱하는 동안에 생성되었다. 한번에 하나의 매크로 블록을 오버랩 평활화 및 디블록킹하기 위해, 비디오 프레임의 매크로 블록들의 각 행(row)을 연속으로 처리함으로써, 다수의 매크로 블록들에 대해 파이프라인화된 방식으로 평활화 및 디블록킹을 연속으로 수행하는 인-루프 필터 및 스크래치 패드 메모리가 사용될 수도 있다. 본 발명의 목적들, 장점들 및 다른 신규한 특질들은, 첨부된 청구항들 및 도면들과 연계하여 다음에 서술된 상세한 설명을 숙독함으로서 해당 기술분야의 당업자에게 명백해질 것이다.
도1은 비디오 정보를 압축해제하는 시스템을 도시한 도면이다.
도2는 본 발명에 따른 예시적인 비디오 압축해제 시스템을 도시한 도면이다.
도3은 본 발명에서 선택된 실시예에 따른 하드웨어에서 오버랩 평활화 및 인-루프 디블록킹을 효과적으로 처리하도록 스크래치 패드 메모리를 사용하는 인-루프 필터링 프로세스를 간략화하여 예시한 도면이다.
도4는 비디오 인코더 또는 디코더에서 평활화 및 디블록킹 필터를 사용하여, 디코딩된 프레임의 blockiness 를 감소시키는 예시적인 기술을 도시한 도면이다.
도5A 내지 5K는 루마(luma) 블록들에 대한 평활화 및 디블록킹 절차를 구현하기 위해, 구분적 프로세싱이 어떻게 사용될 수도 있는지를 예시적으로 도시한 도면이다.
도6A 내지 6F는 크로마(chroma) 블록들에 대한 평활화 및 디블록킹 절차를 구현하기 위해, 구분적 프로세싱이 어떻게 사용될 수도 있는지를 예시적으로 도시한 도면이다.
본 발명의 예시적인 실시예들이 다음에서 설명되지만, 본 발명은 특정한 상세 없이도 실시될 수도 있다는 것이 이해될 것이며 명확성을 위해서, 실제 구현에 서의 모든 특징들이 본 명세서에서 설명되지는 않았다. 이러한 임의의 실제 구현예를 개발하는데 있어서, 개발자들의 특정한 목적(가령, 시스템과 관련된 제한사항 그리고 사업상의 제한 사항에 부합시키는 것)을 달성하기 위해, 구현예별로 특정한 많은 사항들이 결정되어야만 한다는 점이 이해되어야 한다. 더 나아가, 이러한 개발 노력은 복잡하고 시간이 걸리는 일일 수 있지만, 그럼에도 불구하고 본 명세서에서 개시된 내용에 의해 도움을 받는 당업자에게는 이러한 개발 노력이 통상적인 작업일 수도 있음이 이해되어야만 한다. 예를 들면, 선택된 양상들이 블록 다이어그램 형식으로 도시되지만 그렇게 상세하지는 않은바, 이는 발명을 불명료하게 만드는 것을 피하기 위함이다. 이러한 표현들 및 설명들은 해당 기술분야의 당업자들이 자신의 작업의 요지를 다른 당업자에게 전달하거나 설명하기 위해 당업자들에 의해 사용된다. 이제부터 첨부된 도면들을 참조로 하여 본 발명이 설명될 것이다.
도2를 참조하면, 본 발명에 따른 예시적인 비디오 압축해제 시스템(100)이 도시되어 있다. 도시된 바와같이 비디오 압축해제 시스템(100)은 가령, 데스크탑 또는 랩탑 컴퓨터, 무선 또는 이동 디바이스, 개인 휴대 단말기(PDA), 이동전화 또는 셀룰러폰, 및 비디오 이미징 특질들을 포함하는 임의의 다른 비디오 재생 디바이스와 같은, 임의의 비디오 재생 디바이스에서 구현될 수도 있다.
도2에 도시된 바와같이 비디오 압축해제 시스템(100)은, 하나 이상의 프로세서 또는 프로세싱 유닛(50) 및 비디오(또는 미디어) 가속 하드웨어 유닛(101)에 접속되는 버스(95)를 포함하는, 호스트 프로세싱 유닛 또는 어플리케이션 프로세싱 유닛으로 구현된다. 또한, 상기 비디오 압축해제 시스템(100)은, DDR 제어기(60)를 통해 억세스되는 대용량의 DDR SDRAM(62, 64)을 포함하는 메인 메모리 시스템을 포함하여 구성된다. 부가적으로 또는 대안적으로, 하나 이상의 메모리들[예를 들면, IDE(72), 플래시 메모리 유닛(74), ROM(76) 등등]은 정적(static) 메모리 제어기(70)를 통해 억세스된다. DDR SDRAM 또는 다른 메모리들 모두 또는 이들 중 하나는 비디오 압축해제 시스템(100)에 통합될 수도 있으며 또는 비디오 압축해제 시스템(100)의 외부에 구현될 수도 있다. 물론, 다른 주변 디바이스들 및 디스플레이 디바이스들(82, 84, 86, 92)은 각각의 제어기(80, 90)를 통해 억세스될 수도 있다. 명확함과 이해의 편의를 위해, 비디오 압축해제 시스템(100)을 구성하는 모든 구성요소들이 상세히 설명되지는 않았다. 이러한 상세내용은 해당 기술분야의 당업자에게 잘 알려진 것이며, 특정한 컴퓨터 벤더(vendor) 및 마이크로프로세서의 타입에 따라 가변적일 수도 있다. 더 나아가, 비디오 압축해제 시스템(100)은 원하는 구현예에 따라 또 다른 버스들, 디바이스들, 및/또는 서브 시스템들을 포함할 수도 있다. 예를 들면, 상기 비디오 압축해제 시스템(100)은 캐시, 모뎀, 병렬 또는 직렬 인터페이스, SCSI 인터페이스, 네트워크 인터페이스 카드, 및 이와 유사한 것들을 포함할 수도 있다. 예시된 실시예에서, CPU(50)는 플래시 메모리(74) 및/또는 SDRAM(62, 64)에 저장된 소프트웨어를 실행한다.
도2에 도시된 비디오 압축해제 시스템(100)에서, CPU(50)는 VLD 블록(52)에서 나타난 바와같이 초기 가변 길이 디코딩 기능을 수행하며, 반면에 미디어 가속 하드웨어 유닛(101)은, 디코딩된 데이터에 대해서, 역 양자화(104), 역 변환(inverse transform)(106), 모션 보상(108), 인-루프 필터링(110), 컬러 스페이 스 변환(color space conversion)(112), 스케일링(114) 및 필터링(116)을 수행한다. 결과적인 디코딩된 데이터는, 디스플레이(92)에서 디스플레이되기 전에, 출력 버퍼(118) 및/또는 프레임 버퍼(미도시)에 임시로 저장될 수도 있다. 프로세서(50) 및 미디어 가속기 하드웨어(101) 사이에서 디코드 프로세싱 기능을 나눔으로써, 프론트 엔드 디코딩 단계들(예를 들면, 가변 길이 디코딩)은, 다양한 서로다른 압축 체계(예를 들면, MPEG-1, MPEG-2, MPEG-3, MPEG-4, MPEG-7, MPEG-21, WMV9 등등)들을 수용(accommodate)하도록, 소프트웨어에서 구현될 수 있다. 프론트 엔드 디코딩 단계들에 의해 생성된 디코드 데이터는 미디어 가속 하드웨어(101)에 제공되는바, 미디아 가속 하드웨어는 상기 디코드 데이터를 더 디코드하여 픽셀 값들을, 프레임이 완료될 때까지 매크로블록별 기반으로(macroblock by macroblock basis) 출력 버퍼 또는 프레임 버퍼에 제공한다.
동작면에서, 비디오 압축해제 시스템(100)은 압축된 비디오 신호를 가령, CD ROM, DVD 또는 다른 저장 디바이스와 같은 비디오 신호 소스로부터 수신한다. 압축된 비디오 신호는 압축된 비디오 정보의 스트림으로서 프로세서(50)에 제공되며, 프로세서는 가변 길이 디코딩된 데이터(VLD 데이터) 신호를 제공하기 위해서, 상기 압축된 신호의 가변 길이 코딩된 부분(portion)을 디코드하는 명령을 실행한다. 가변 길이 코딩을 수행하기 위해 소프트웨어 도움(software assist)이 일단 적용되면, 상기 VLD 데이터[이는 헤더들, 매트릭스 가중치들(matrix weights), 모션 벡터들, 변환된 나머지 계수들(transformed residue coefficients), 및 미분 모션 벡터들(differential motion vectors)을 포함한다]는 미디어 가속 하드웨어 유닛(101) 으로 전달되는바, 직접 전달되거나 또는 미국 출원번호 11/042365(제목 : Lightweight Compression Of Input Data)에 좀더 자세히 설명된 데이터 압축 기술들을 이용하여 전달된다. 미디어 가속기 하드웨어 유닛(101)에서는, 일단 VLD 데이터가 수신되면, 상기 데이터는 역 지그-재그 및 양자화기 회로(104)로 제공되며, 역 지그-재그 및 양자화기 회로는, 지그-재그 디코딩된 신호를 제공하기 위해 상기 VLD 데이터 신호를 디코드한다. 역 지그-재그 및 양자화는, 압축된 비디오 신호는 지그-재그 런 길이 코드 방식으로 압축되는 반면에, 지그-재그 디코딩된 신호는 정보의 연속적인(sequential) 블록들로서 역 DCT 회로(IDCT)(106)에 제공된다는 점을 보상해 준다. 결과적으로, 이러한 지그-재그 디코딩된 신호는 블록들을 제공하는바, 이들 블록들은, 디스플레이(92)에 래스터 주사(raster scanning)를 하기위해 요구되는 순서를 갖는다. 이후, 이러한 지그-재그 디코딩된 신호는 역 변환 회로(106)(예를 들면, IDCT 또는 역 정수(integer) 변환)에 제공되며, 역 변환 회로는 지그-재그 디코딩된 비디오 신호에 블록별 기반으로(block by block basis) 역 이산 코사인 변환을 수행하여, 정적으로(staticly) 압축해제된 픽셀 값들 또는 압축해제된 오차 항들(error terms)을 제공한다. 상기 정적으로(staticly) 압축해제된 픽셀 값들은 모션 보상 유닛(108)을 통해 블록별 기반으로 프로세싱되는바, 모션 보상 유닛(108)은 인트라프레임, 예측된 및 양방향 모션 보상을 제공하며, 하나, 둘 및 네개 모션 벡터들(16×16, 16×8 및 8×8 블록들)에 대한 지원(support)을 포함한다. 인-루프 필터(110)는, WMV9 압축 표준에 따른 블록킹 아티팩트들을 감소 또는 제거하기 위해 오버랩 평활화 및/또는 디블록킹을 수행하는바, 부분적으 로 종료된 매크로 블록 필터 데이터를 저장하는 스크래치 패드 메모리(111)를 사용하며, 이에 대한 상세한 내용은 후술한다. 컬러 스페이스 변환기(converter)(112)는 하나 이상의 입력 데이터 포맷들(예를 들면, YCbCr 4:2:0)을 하나 이상의 출력 포맷들(예를 들면, RGB)로 변환하며, 그리고 그 결과는 필터(116)에서 필터링되거나 및/또는 스케일링된다.
본 명세서에서 개시된 바와같이, 평활화 및 디블록킹 인-루프 필터(110)는, 제 1 패스 동안에 매크로 블록들의 각각의 행을 부분적으로 필터링 또는 프로세싱함으로써, 인접한 블록들 사이의 경계 불연속들을 제거하며, 이후 부분적으로 프로세싱된 상기 블록들에 대한 처리를, 매크로 블록들의 다음 행을 프로세싱하는 동안에 완료한다. 이러한 기술로 인해, 부분적으로 처리된 블록들을 스크래치 패드 메모리에 저장하도록 작은 스크래치 패드 메모리(111)가 효과적으로 사용될 수 있으며, 이는 종래기술에 따른 디블록킹 프로세스에서 필터링을 위해 전체 프레임 이미지를 저장하는 큰 메모리를 사용하는 것과 현저히 다른 점이다.
오버랩 평활화 및 디블록킹을 위해 각 블록을 프로세싱하는 것이 행별 기반(row by row basis)으로 완료되면, 완료된 블록들은 CSC(Color Space Converter)(112)로 전송되기 전에, 필터(110)로부터 FIFO 버퍼(미도시)로 출력될 수도 있다.
도3은, 본 발명의 선택된 실시예에 따라 오버랩 평활화 및 디블록킹을 효과적으로 처리하기 위해 스크래치 패드 메모리를 사용하는 매크로 블록 기반의 인-루프 필터링 프로세스를 예시적으로 도시한 간략도이다. 필터링 프로세스에서, 매크 로 블록들의 행에 대한 인 루프 필터의 각각의 패스(pass)는, 완전하게 완료된 블록들[상기 블록들을 평활화 및 디블록킹하도록 완전히(fully) 필터링됨] 및 부분적으로 완료된 블록들(매크로 블록들의 다음 행을 평활화 및 디블록킹하는데에 후속으로 사용되기 위해 스크래치 패드 메모리에 저장됨)을 생성한다. 도시된 바와같이, 모든 개개의 매크로 블록(예를 들어, 4개의 루마 블록들, mb4y0, mb4y1, mb4y2, 및 mb4y3 를 포함하는 매크로 블록 4 또는 "mb4")은, 인-루프 필터링 프로세스에서 다음의 프로세싱 순서를 거치게 된다.
(ⅰ) 이전의 매크로 블록(예를 들면, 매크로 블록 1)에 인접한 8×8 블록들(예를 들면, mb4y0, mb4y1)에 대한 평활화 및 디블록킹을 완전히 완료하고, 다음 매크로 블록(예를 들면, 매크로 블록 7)에 인접한 8×8 블록들(예를 들면, mb4y2, mb4y3)에 대한 평활화 및 디블록킹을 부분적으로 완료한다;
(ⅱ) 완료된 8×8 블록들(예를 들면, mb4y0, mb4y1)을 출력하고, 부분적으로 완료된 8×8 블록들(예를 들면, mb4y2, mb4y3)을 스크래치 패드 메모리에 저장한다;
(ⅲ) 다음 매크로 블록(예를 들면, 매크로 블록 7)이 프로세스될 때, 상기 부분적으로 완료된 8×8 블록들(예를 들면, mb4y2, mb4y3)을 스크래치 패드 메모리로부터 페치(fetch)하고, 페치된 8×8 블록들(예를 들면, mb4y2, mb4y3)에 대한 프로세싱을 완료한다; 그리고
(ⅳ) 상기 완료된 8×8 블록들(예를 들면, mb4y2, mb4y3)을 다음 매크로 블록의 완료된 8×8 블록들(예를 들면, mb7y0, mb7y1)과 함께 출력한다.
비록, 상세한 구현예들은 어플리케이션에 따라 가변적일 수도 있지만, 도3은, 인-루프 필터(110)에 의해 프로세싱되는 이미지 프레임(150)이, 매크로 블록들(예를 들면, mb0, mb1, mb2, mb3, mb4, mb5, mb6, mb7, mb8 등등의 매크로 블록들)로 구성되어 있으며 다수의 행들[예를 들면, mb0, mb1 및 mb2 로 구성된 제 1 행(151)]에 배치되어 있는 예시적인 실시예를 도시한 도면이다. 도3의 3A에 도시된 바와같이, 인-루프 필터(110)는 매크로 블록들의 제 1 행(151)에 대해 제 1 패스를 이미 수행하였다. 제 1 행(151)에 대한 제 1 패스의 수행 결과, 위쪽 블록들(mb0y0, mb0y1, mb1y0, mb1y1, mb2y0, mb2y1)은 오버랩 평활화 및 디블록킹을 위해 완전히 프로세스되며(크로스-해칭으로 표시됨), 반면에 아래쪽 블록들(mb0y2, mb0y3, mb1y2, mb1y3, mb2y2, mb2y3)은 오버랩 평활화 및 디블록킹을 위해 단지 부분적으로만 프로세스된다. 매크로 블록 프로세싱의 다음번 패스 동안에 제 1 행(151)의 부분적으로 처리된 블록들을 완료하기 위해서, 상기 제 1 행(151)의 부분적으로 처리된 블록들은 스크래치 패드 메모리(111)에 저장된다(도트 패턴으로 표시됨).
도3의 3A에 추가적으로 도시된 바와같이, 인-루프 필터(110)는, 매크로 블록들의 제 2 행(152)을 프로세싱하기 시작하며, 이 프로세스에 의해 제 1 행(151)의 부분적으로 프로세싱된 블록들이 완료될 것이다. 그 결과, mb0y2 및 mb3y0 블록이 평활화 및 디블록킹을 위해 완전하게 프로세싱되며, mb3y2 블록은 부분적으로만 프로세싱된다(그리고 스크래치 패드에 저장됨). 도3의 3A에서 필터(110)에 의해 프로세싱될 블록들에 대해서[필터링된 블록(154)은 대각선 해칭으로 표시됨], mb0y3, mb3y1 및 mb3y3 블록들은 평활화 및 디블록킹을 위해 부분적으로 프로세싱되어 있으며[그리고 필터(110)에 보유되며], mb1y2 블록은 스크래치 패드로부터 페치된 부분적으로 완료된 블록이며, 그리고 나머지 블록들(mb4y0 및 mb4y2)은 현재의 매크로 블록(예를 들면, 매크로 블록 4)으로부터 획득된다. 인-루프 필터(110)가 필터링된 블록들(154)을 프로세싱함에 따라, 하나 이상의 부분적으로 프로세싱된 블록들(예를 들면, mb0y3, mb3y1)에 대한 평활화 및 디블록킹은 완료되며, 반면에 남아있는 블록들(mb1y2, mb4y0, mb4y2 and mb3y3)은 부분적으로만 완료된다.
필터링된 블록들(154)을 처리한 이후에, 인-루프 필터(110)는 새로운 데이터로 쉬프트한다. 이러한 것이 도3의 3B에 도시된 프레임(155)에 예시되어 있는바, 임의의 완료된 블록들(예를 들면, mb0y3, mb3yl)을 출력하고, 하나 이상의 부분적으로 완료된 블록들(예를 들면, mb3y3)을 스크래치 패드 메모리에 저장하고, 필터에 남아있는 부분적으로 완료된 블록들(예를 들면, mbly2, mb4y0, mb4y2)을 한 블록 위치만큼 쉬프트하고, 매크로 블록들의 이전 행으로부터 부분적으로 완료된 블록(예를 들면, mb1y3)을 페치하고 그리고 현재의 매크로 블록으로부터 새로운 블록들(예를 들면, mb4yl, mb4y3)을 로딩함으로써, 필터(110)는 필터링된 블록들(156)을 획득한다. 인-루프 필터(110)가 필터링된 블록들(156)을 프로세스함에 따라, 하나 이상의 부분적으로 프로세싱된 블록들(예를 들면, mbly2, mb4y0)에 대한 평활화 및 디블록킹이 완료되며, 남아있는 블록들(mbly3, mb4yl, mb4y3 and mb4y2)은 부분적으로만 완료된다.
필터링된 블록들(156)을 프로세싱한 이후에, 상기 인-루프 필터(110)는 다시 새로운 데이터로 쉬프트하며, 이는 도3의 3C에 도시된 프레임(157)에 예시되어 있다. 특히, 임의의 완료된 블록들(예를 들면, mbly2, mb4y0)을 출력하고, 하나 이상의 부분적으로 완료된 블록들(예를 들면, mb4y2)을 스크래치 패드 메모리에 저장하고, 필터에 남아있는 부분적으로 완료된 블록들(예를 들면, mbly3, mb4yl, mb4y3)을 한 블록 위치만큼 쉬프트하고, 매크로 블록들의 이전 행으로부터 부분적으로 완료된 블록(예를 들면, mb2y2)을 페치하고 그리고 현재의 매크로 블록으로부터 새로운 블록들(예를 들면, mb5y0, mb5y2)을 로딩함으로써, 필터(110)는 필터링된 블록들(158)을 획득한다. 인-루프 필터(110)가 필터링된 블록들(158)을 프로세스함에 따라, 하나 이상의 부분적으로 프로세싱된 블록들(예를 들면, mbly3, mb4y1)에 대한 평활화 및 디블록킹이 완료되며, 남아있는 블록들(mb2y2, mb5y0, mb5y2 and mb4y3)은 부분적으로만 완료된다. 이 시점에서, 매크로 블록 4의 위쪽 블록들(mb4y0, mb4y1)에 대한 평활화 및 디블록킹은 완료되어 있으며, 하지만 아래쪽 블록들(mb4y2, mb4y3)은 단지 부분적으로만 완료되어 있다. 부분적으로 완료된 아래쪽 블록들을 스크래치 패드 메모리에 저장함으로서, 필터(110)가 매크로 블록들의 다음 행을 프로세스할 때에, 상기 필터링 동작은 완료될 수 있다.
본 발명의 또 다른 실시예에 대한 추가적인 상세한 내용이 도4에 예시되어 있는바, 도4는 비디오 인코더 또는 디코더에서 평활화 및 디블록킹 필터를 사용하여, 디코딩된 프레임의 blockiness 를 감소시키는 기술(200)을 도시한 도면이다. 이해되는 바와같이, 도시된 기술은 루마(luma) 또는 크로마(chroma) 블록들을 프로세스하기 위해 사용될 수도 있으며 비록, 각 프레임의 주변부(periphery)에는 특정 한 코너 케이스들이 있을 수도 있지만, 해당 기술분야의 당업자들은 본 발명을 원하는 대로 조정하거나 적용할 것이다. 하지만, 간략화를 위해서, 현재 개시된 내용은 각각의 프레임의 안쪽 매크로 블록들 상에서 수행되는 인-루프 필터링 단계에 주된 촛점을 맞추어 설명된다.
도4를 참조하면, 일단 비디오 인코더/디코더가 프레임에 대해 적어도 하나의 제 1 매크로 블록을 생성하면(201), 인-루프 필터는 매크로 블록들의 최상위 행(top row)을 한번에 하나의 매크로 블록씩 프로세싱하여 각 블록의 경계들을 그의 인접한 블록들과 함께 필터링한다. 이해되는 바와같이, 상기 프레임의 주변부 상에서는 평활화 또는 디블록킹이 수행되지 않기 때문에, 필터링 프로세스에서 사용되는 부분적으로 완료된 블록들이 프레임의 바깥쪽에는 존재하지 않는다. 하지만, 매크로 블록들의 제 1 행이 필터링됨에 따라, 스크래치 패드 메모리는 부분적으로 완료된 블록들로 채워진다. 제 1 매크로 블록에서 시작하여(201), 인코더/디코더는 요구되는 블록들을 로딩하고, 스크래치 패드 메모리로부터 부분적으로 완료된 임의의 인접한 블록을 위에서 부터(매크로 블록들의 제 1 행은 제외) 검색한다. 매크로 블록이 4개의 루마 블록들(y0, yl, y2, y3) 및 2개의 크로마 블록들(Cb, Cr)로 이루어진 경우, 상기 블록들은 다음과 같은 순서에 따라 인코더/디코더로 들어간다: y0, yl, y2, y3, Cb, Cr.
다음으로, 비디오 인코더/디코더는, 필터로 로딩된 블록들의 소정의 경계들을, 인접한 블록들 또는 서브-블록들과 함께 필터링한다(210). 선택된 실시예에서, 필터에서 각 블록을 부분적으로 프로세스하기 위해 구분적 프로세싱 기법이 사용될 수도 있다. 예를 들면, 휘도(luminance) 또는 색차(chrominance) 중 어느 하나에서 8×8 블록을 디코딩한 이후에, 왼쪽 및/또는 오른쪽(수직) 가장자리들의 전부 또는 일부가 평활화 필터 프로세싱을 받게된다(211). 부가적으로 또는 대안적으로, 상기 블록의 최상 및/또는 바닥(수평) 가장자리들의 전부 또는 일부가 평활화 필터 프로세싱을 받게된다(212). 오버랩 평활화 뿐만 아니라, 디블록킹 필터 프로세싱이 8×8 블록들의 선택된 수평 경계선들의 전부 또는 일부에 적용될 수도 있으며(213) 및/또는 8×4 서브-블록들의 선택된 수평 경계선들의 전부 또는 일부에 적용될 수도 있다(214). 추가적으로 또는 대안적으로, 디블록킹 필터 프로세스는 8×8 블록들의 선택된 수직 경계선들의 전부 또는 일부에 적용될 수도 있으며(215) 및/또는 8×4 서브-블록들의 선택된 수직 경계선들의 전부 또는 일부에 적용될 수도 있다(216).
일단 필터내의 블록들이 구분적으로 프로세스되면, 그 결과물들은 추가적인 프로세싱을 위해 필터 내에 저장되거나 또는 쉬프트된다. 특히, 필터가 새로운 데이터를 프로세스하기 위해서는, 필터내의 임의의 완료된 블록들은 필터로부터 출력된다(217). 또한, 새로운 블록들과 함께 프로세스되지 않을 것인 부분적으로 완료된 임의의 블록들은, 후속 사용 및 매크로 블록들의 다음 행과 함께 추가적으로 프로세싱되기 위하여 스크래치 패드 메모리에 저장되는바(219), 이는 매크로 블록들의 마지막 행이 프로세스될 때까지(결정단계 218 에서 긍정적인 결과가 나올때 까지) 수행되며, 이 경우 스크래치 패드 메모리에 저장하는 단계가 생략될 수도 있다.
선택된 블록들을 저장함에 의해 필터내에 여분 공간을 만들었기 때문에(217, 219), 상기 필터는 이제 새로운 데이터를 프로세싱할 수 있다. 특히, 프레임내에 추가적인 블록들이 있는 경우에는(결정단계 220에서 긍정적인 결과), 필터에 남아있는 부분적으로 필터링된 블록들은 왼편으로 쉬프트된다(222). 최상층 행의 아래쪽에 있는 행들의 경우(결정 단계 224에서 부정적인 결과), 필터내에서 이용가능한 공간은 스크래치 패드 메모리로부터 부분적으로 완료된 다음 블록을 검색함에 의해 채워지며(226), 그리고 필터내에서 임의의 남아있는 공간은 새로운 블록들로 채워진다(228). 일단, 필터가 새로운 데이터로 로딩되면, 블록 필터링 프로세스(210)는 필터 블록들의 새로운 세트에 대해서 반복된다. 이러한 일련의 동작들을 반복함으로써, 프레임내의 각각의 매크로 블록은 연속적으로 필터링되는바, 매크로 블록들의 이전 행에 대한 프로세싱 동안에 생성된 부분적으로 완료된 블록들을 스크래치 패드 메모리로부터 검색하며, 부분적으로 필터링된 블록들을, 매크로 블록들의 다음 행에 대한 프로세싱 동안에 후속으로 사용하기 위하여 스크래치 패드 메모리에 저장한다. 다른 한편으로, 만약 필터링될 블록들이 남아있지 않은 경우(결정단계 220에서 부정적인 결과), 현재 프레임에 대한 평활화 및 디블록킹 프로세스는 종료한다. 이 시점에서 다음 프레임이 검색되며(230), 그리고 상기 필터링 프로세스가 새로운 프레임의 제 1 매크로 블록에서 시작하여 반복된다.
이제, 도5A 내지 도5K를 참조하여 설명한다. 도5A 내지 도5K는 본 발명의 예시적인 실시예를 도시한 도면으로, 매크로 블록 4(또는 mb4)의 루마 블록들에 대한 WMV 평활화 및 디블록킹 절차가 구분적 프로세싱 기법을 이용하여 어떻게 구현될 수도 있는지를 도시한 도면이다. 필터링 프로세스의 시작 지점이 도5A에 도시되어 있는바, 필터(320)는, 오버랩 평활화(예를 들면, 타원형 322 으로 표시됨) 및 디블록킹(예를 들면, 직선 323으로 표시됨)을 위해 이미 부분적으로 프로세싱된 블록들(mb0y3, mb3y1 및 mb3y3)로 이미 로딩되어 있다.
이후, 필터(320)는 도5B에 도시된 바와같이 추가적인 블록들로 채워진다. 특히, 부분적으로 완료된 블록(예를 들면, mb1y2)은 스크래치 패드 메모리로부터 검색되어 필터로 로딩된다. 또한, 현재의 매크로 블록(예를 들면, mb4)로부터 선택된 블록들(예를 들면, mb4y0, mb4y2)이 인코더/디코더로 로딩된다. 비록, 매크로 블록 로딩 시퀀스(예를 들면, mb4y0, mb4yl, mb4y2 and mb4y3)는 상기 블록들 중 적어도 하나의 블록들이 로딩될 것을 요구하지만, 지금 이 시점에서는 필터(320)로 쉬프트될 것을 요구하지는 않으며, 이는 도면부호(321)에서 도시된 바와같다.
일단 필터 블록들이 로딩되면, 필터(320)는 도5C에 도시된 바와같이 구분적 오버랩 평활화를 수행한다. 특히, 선택된 내부 수직 가장자리(edge)(301, 302)에 대해서 수직 오버랩 평활화(V)가 수행된다. 다음으로, 선택된 내부 수평 가장자리(예를 들면, 303, 304, 305 및 306)에 대해서 수평 오버랩 평활화(H)가 수행된다.
필터 블록들이 부분적으로 평활화된 이후에, 필터(320)는 도5D에 도시된 바와같이 구분적 디블록킹을 수행한다. 먼저, 선택된 8×8 블록 경계들(예를 들면, 307, 308, 309, 310)에 대해 수평 인-루프 디블록킹(HD)이 수행되며, 이후 선택된 서브-블록 경계들(예를 들면, 311, 312, 313, 314)에 대해 수평 인-루프 디블록킹(HDH)이 수행된다. 다음으로, 상기 필터는 선택된 8×8 블록 경계들(예를 들면, 315, 316)에 대한 수직 인-루프 디블록킹(VD)을 수행하며, 이후 선택된 서브-블록 경계들(예를 들면, 317, 318)에 대한 수직 인-루프 디블록킹(VDH)을 수행한다.
전술한 평활화 및 디블록킹 단계들 각각에서, 경계 부분(boundary piece)이 필터링되는 순서는 문제되지 않는바, 이는 경계 부분들(boundary pieces) 사이에서는 종속성(dependency)이 없기 때문이다. 더 나아가, 도5C 및 도5D에 도시된 특정한 순서의 구분적 프로세싱이외에도, 다른 순서 및/또는 필터링 단계들 역시 본 발명에 따라 구현될 수도 있다. 예를 들면, 서로 다른 순서로 경계 부분들((boundary pieces)이 필터링 될 수도 있다. 또한, 하나 이상의 평활화 또는 디블록킹 모드들이 적용될 수도 있으며, 필터링 동작은 경계의 양쪽 사이드 상에서 3개 또는 그 이상의 픽셀들에 대해 영향을 미칠 수 있는바 이는 필터링 체계에 좌우된다. 예를 들면, MPEG-4 표준은 2개의 디블록킹 모드들을 사용하는바, 제 1 모드에서는 짧은(short) 필터를 블록 가장자리의 양쪽 사이드 상에서 하나의 픽셀에 적용하고 있으며, 제 2 모드에서는 좀더 긴(longer) 필터를 블록 가장자리의 양쪽 사이드 상에서 2개의 픽셀들에 적용하고 있다. 다른 구현예들에서는, 필터 정의들, 서로 다른 필터들의 갯수 및/또는 적응형 필터링 조건들이 특정한 요구들을 만족시키기 위해 사용될 수도 있다.
일단, 평활화 및 디블록킹 필터 동작이 완결되면, 프로세싱된 필터 블록들은 도5E에 도시된 바와같이 저장되고 쉬프트된다. 특히, 임의의 완료된 블록들(예를 들면, mb0y3, mb3yl)은 이후 출력될 수도 있는데, 이는 이들 블록들이 완료되었기 때문이다. 또한, 하나 이상의 부분적으로 완료된 블록들(예를 들면, mb3y3)은, 아래쪽으로 인접한 매크로 블록(도3의 mb3y3과 관련하여 매크로블록 6을 참조하라)을 처리할 때에 후속 사용을 위해, 스크래치 패드 메모리로 이동될 수도 있다. 필터에 남아있는 임의의 부분적으로 완료된 블록들(예를 들면, mbly2, mb4y0, mb4y2)은, 새로운 데이터를 위한 공간을 만들어주도록 이후, 필터로 쉬프트될 수도 있다. 출력, 저장 및 쉬프트 단계의 결과가 도5F에 도시되어 있다.
이제, 필터(320)는 도5G에 도시된 바와같이 새로운 데이터 블록들로 채워질 수도 있다. 특히, 부분적으로 완료된 블록(예를 들면, mb1y3)이 스크래치 패드 메모리로부터 검색되어 필터로 로딩된다. 또한, 남아있는 블록들(예를 들면, mb4yl, mb4y3)이 현재의 매크로 블록(예를 들면, mb4)으로부터 필터(320)로 로딩된다.
일단, 필터 블록들이 로딩되면, 필터(320)는 도5H에 도시된 바와같은 구분적 오버랩 평활화를 수행한다. 특히, 선택된 내부 수직 에지들에 대해 수직 오버랩 평활화(V1, V2)가 수행된다. 다음으로, 선택된 내부 수평 에지들에 대해 수평 오버랩 평활화(H1, H2, H3, H4)가 수행된다.
필터 블록들이 부분적으로 평활화된 이후에, 필터(320)는 도5I 에 도시된 바와같은 구분적 디블록킹을 수행한다. 먼저, 수평 인-루프 디블록킹(HD1, HD2, HD3, HD4)이 선택된 8×8 블록 경계들에 대해 수행되며, 선택된 서브 블록 경계들에서 수평 인-루프 디블록킹(HDH1, HDH2, HDH3, HDH4)이 후속으로 수행된다. 다음으로, 상기 필터는 선택된 8×8 블록 경계들에 대해 수직 인-루프 디블록킹(VD1, VD2)을 수행하며, 이후 선택된 서브-블록 경계들에 대한 수직 인-루프 디블록킹(VDH1, VDH2)이 수행된다.
일단, 평활화 및 디블록킹 필터 동작이 완결되면, 프로세싱된 필터 블록들은 도5J에 도시된 바와같이 저장되고 쉬프트된다. 특히, 임의의 완료된 블록들(예를 들면, mb1y2, mb4y0)은 이후 출력될 수도 있는데, 이는 이들 블록들이 완료되었기 때문이다. 또한, 하나 이상의 부분적으로 완료된 블록들(예를 들면, mb4y2)은, 아래쪽으로 인접한 매크로 블록을 처리할 때에 후속 사용을 위해, 스크래치 패드 메모리로 이동될 수도 있다. 필터에 남아있는 임의의 부분적으로 완료된 블록들(예를 들면, mbly3, mb4y1, mb4y3)은, 새로운 데이터를 위한 공간을 만들어주도록 이후, 필터로 쉬프트될 수도 있다. 출력, 저장 및 쉬프트 단계의 결과가 도5K에 도시되어 있으며, 이는 도5A에 도시된 초기 필터 상태에 정확히 대응한다. 그 결과, 도5A 내지 도5K에 도시된 일련의 단계들이, 다음 매크로 블록(예를 들면, 매크로블록 5 또는 mb5)을 포함하는 필터 블록들을 계속하여 필터링하도록 반복될 수도 있다.
이제 도6A 내지 도6F를 참조하면, 본 발명의 예시적인 실시예가 도시되어 있는바, 매크로 블록의 Cb 또는 Cr 블록들에 대한 WMV9 평활화 및 디블록킹 절차가 구분적 프로세싱 기법을 이용하여 어떻게 구현될 수도 있는지가 도시되어 있다. Cb 블록 및 Cr 블록들은 유사하기 때문에, 실시예는 인덱스 라벨 Cb(x,y)에 의해 식별되는 현재의 Cb 매크로 블록에 대해서 설명된다. 필터링 프로세스의 시작 지점이 도6A에 도시되어 있는바, 오버랩 평활화(예를 들면, 타원형 422 으로 표시됨) 및 디블록킹(예를 들면, 직선 423으로 표시됨)을 위해 이미 부분적으로 프로세싱된 블록들[예를 들면, Cb(x-1, y-1) and Cb(x-1, y)]로 필터(420)가 이미 로딩되어 있다.
이후, 필터(420)는 도6B에 도시된 바와같이 추가적인 블록들로 채워진다. 특 히, 부분적으로 완료된 블록[예를 들면, Cb(x, y-1)]이 스크래치 패드 메모리로부터 검색되어 필터로 로딩된다. 또한, 현재의 매크로 블록으로부터 블록[예를 들면, Cb(x, y)]이 필터(420)로 로딩된다. 일단, 필터 블록들이 로딩되면, 상기 필터(420)는 구분적 오버랩 평활화를 수행하며 이는 도6C에 도시된 바와같다. 특히, 수직 오버랩 평활화(V)가 선택된 내부 수직 에지들에 대해 수행된다. 다음으로, 수평 오버랩 평활화(H1, H2)가 선택된 내부 수평 에지들에 대해 수행된다.
필터 블록들이 부분적으로 평활화된 이후에, 필터(420)는 도6D 에 도시된 바와같은 구분적 디블록킹을 수행한다. 먼저, 수평 인-루프 디블록킹(HD1, HD2)이 선택된 8×8 블록 경계들에 대해 수행되며, 선택된 서브 블록 경계들에서 수평 인-루프 디블록킹(HDH1, HDH2)이 후속으로 수행된다. 다음으로, 상기 필터는 선택된 8×8 블록 경계들에 대해 수직 인-루프 디블록킹(VD)을 수행하며, 이후 선택된 서브-블록 경계들에 대한 수직 인-루프 디블록킹(VDH)이 수행된다.
일단, 평활화 및 디블록킹 필터 동작이 완결되면, 프로세싱된 필터 블록들은 도6E에 도시된 바와같이 저장되고 쉬프트된다. 특히, 임의의 완료된 블록[예를 들면, Cb(x-1, y-1)]은 출력될 수도 있는데, 이는 이들 블록이 완료되었기 때문이다. 또한, 하나 이상의 부분적으로 완료된 블록들[예를 들면, Cb(x-1, y1)]은, 아래쪽으로 인접한 매크로 블록을 처리할 때에 후속 사용을 위해, 스크래치 패드 메모리로 이동될 수도 있다. 필터에 남아있는 임의의 부분적으로 완료된 블록들[예를 들면, Cb(x, y-1), Cb(x, y)]은, 새로운 데이터를 위한 공간을 만들어주도록 이후, 필터로 쉬프트될 수도 있다. 출력, 저장 및 쉬프트 단계의 결과가 도6F에 도시되어 있으며, 이는 도6A에 도시된 초기 필터 상태에 정확히 대응한다. 그 결과, 도6A 내지 도6F에 도시된 일련의 단계들이, 다음 매크로 블록을 필터링하도록 반복될 수도 있다.
앞에 설명된 바와같이, 작은 스크래치 패드 메모리를 하드웨어 디코더 유닛에 제공함으로써, 상기 인-루프 필터는, 현재 매크로 블록[MB(x,y)로 표시됨]의 루마 및 크로마 블록들로부터의 임의의 부분적으로 완료된 필터링 결과들을, 스크래치 패드 메모리에 임시로 저장할 수도 있다. 상기 저장된 필터링 결과들은 이후, 상기 매크로 블록에 인접한 아래 행의 블록들을 프로세싱하는데에 사용될 수도 있다. 특히, 필터가 바로 아래에 있는 매크로 블록 즉, MB(x, y+1)을 프로세싱 할 때에는, MB(x,y)에 대해 상기 저장된 데이터는 스크래치 패드 메모리로부터 페치되며 그리고 MB(x, y+1)를 프로세싱하는데 사용된다.
비록, 스크래치 패드 메모리에 저장된 부분적으로 완료된 필터링 결과들은 적어도 8×8 픽셀 데이터를 포함해야 하지만, 선택된 일 실시예에서는, 상기 스크래치 패드 메모리는 또한, 상기 블록에 대한 경계 필터링이 필요한가를 결정하는 제어 데이터를 저장한다. 예를 들면, 제어 데이터는 각 블록의 현재 매크로 블록의 6개의 블록들에 대한 헤더들의 그룹을 포함하며, 1mv 또는 4mv 셀렉터, 블록 어드레스, 프레임에서 블록의 포지션, mbmode, 프레임 사이즈, 계수(0 또는 0 이 아님) 및 모션 벡터들(x 및 y 방향으로의 포워드를 위한 2개, x 및 y 방향으로의 백워드를 위한 2개)을 포함한다. 상기 데이터는 버스트 사이즈의 효율적인 사용을 가능케 하는 방식으로 패킹될 수도 있다.
스크래치 패드 메모리의 작은 사이즈 때문에, 상기 메모리는 비디오 가속기처럼 동일한 칩 상에 위치될 수도 있으며, 전형적인 프레임 사이즈에 대해서 상기 스크래치 패드 메모리는 가령, DDR 메모리 또는 다른 외부 메모리처럼, 다른 칩 상에 위치할 수도 있다. 하지만, 스크래치 패드 메모리를 비디오 가속기 하드웨어 유닛(10)에 위치시킴으로써, 향상된 메모리 억세스 성능이 얻어진다. 스크래치 패드 메모리의 사이즈를 최소화함으로써, 전체 프레임에 대한 데이터 블록들을 저장하기 위해 큰 용량의 메모리 버퍼를 포함하는 것에 비하여, 미디어 가속기 하드웨어 유닛의 제조단가가 감소될 수도 있다. 예를 들어, 제어 데이터 및 픽셀 데이터를 포함하는 부분적으로 완료된 필터링 결과들을 저장하는데에 사용되는 스크래치 패드 메모리는 다음과 같이 계산될 수 있다:
스크래치 패드의 사이즈 = (576 바이트)×(프레임내에서 수평으로 있는 매크로 블록의 갯수)
앞서 설명한 바와같이, 프레임의 사이즈가 수직 방향으로 클 때, 스크래치 패드의 사이즈는 상대적으로 작다. 즉, 달리 말하면, 스크래치 패드의 사이즈는 수평 방향으로의 프레임 사이즈에 의존한다. 전체 프레임이 디코딩되기 전에 필터링이 제 1 매크로 블록 상에서 시작할 수 있는한, 본 명세서에서 개시된 구분적 프로세싱 기법이, 전체 프레임을 유지하는 큰 메모리와 관련해서도 필터링 동작의 스피드를 향상시키도록 유용하게 사용될 수도 있다는 것을 알 수 있을 것이다. 하지만, 스크래치 패드 메모리를 사용하는 것은, 전체 프레임을 저장하기 위해 큰 메모리를 사용하는 것에 비하여 비용 및 속도면에서 장점이 있으며, 전체 프레임을 저장하기 위해 큰 메모리를 사용한다는 것은 비용이 많이 들며 액세스 시간에 오버헤드를 부가하는 단점이 있다. 또한, 스크래치 패드 메모리의 사용은, 필터링 알고리즘에서 파이프라인화된 프로세싱에 매우 잘 부합한다.
전술한 특정한 실시예들은 단지 예시적인 것이며 본 발명을 제한하는 것으로 받아들여져서는 않되며, 본 발명은 상이하지만 대등한 방법들을 통해서 수정되거나 실시될 수도 있는바, 이러한 방법들은 본 명세서의 가르침의 이득을 얻는 해당 기술분야의 당업자에게는 자명할 것이다. 따라서, 전술한 상세한 설명은, 제시된 특정된 폼으로 본 발명을 제한하는 것으로 의도되는 것은 아니며, 오히려 그와는 반대로, 첨부된 청구항들에 의해 정의되는 본 발명의 사상 및 범위내에 포함될 수도 있는 이러한 대안예들, 변형예들 및 등가물들 커버하도록 의도되는바, 해당 기술분야의 당업자라면, 이들 당업자들이 가장 넓은 형식에서 본 발명의 사상 및 범위를 벗어남이 없이 다양한 변화들, 대용예들 및 대안예들을 만들 수 있음을 이해하여야 한다.

Claims (10)

  1. 다수의 매크로 블록들로의 블록변환으로 프로세싱된 비디오 데이터를 디코딩하는 방법에 있어서,
    적어도 하나의 제 1 부분적으로 필터링된 블록 및 적어도 하나의 제 1 완료된 블록을 생성하도록 제 1 매크로 블록의 선택된 픽셀 데이터를 평활화 및 디블록킹하는 단계와; 그리고
    제 2 매크로 블록의 선택된 픽셀 데이터를 평활화 및 디블록킹하는데 사용하기 위해, 상기 제 1 부분적으로 필터링된 블록을 스크래치 패드 메모리에 저장하는 단계
    를 포함하여 이루어진 비디오 데이터를 디코딩하는 방법.
  2. 제 1 항에 있어서,
    상기 평활화 및 디블록킹 단계에서 사용하기 위해, 제 2 부분적으로 필터링된 블록을 상기 스크래치 패드 메모리로부터 페치하는 단계를 더 포함하여 이루어지며,
    상기 제 2 부분적으로 필터링된 블록은, 이전(previous) 매크로 블록을 프로세싱하는 동안에, 이전에(previously) 생성되었던 것을 특징으로 하는 비디오 데이터를 디코딩하는 방법.
  3. 제 1 항에 있어서,
    상기 평활화 및 디블록킹 단계는 인-루프 필터에 의해 수행되는 것을 특징으로 하는 비디오 데이터를 디코딩하는 방법.
  4. 제 3 항에 있어서,
    한번에 하나의 매크로 블록을 평활화 및 디블록킹하도록, 상기 인-루프 필터는 비디오 프레임의 매크로 블록들의 각각의 행(row)을 순차적으로 프로세싱하는 것을 특징으로 하는 비디오 데이터를 디코딩하는 방법.
  5. 제 3 항에 있어서, 상기 인-루프 필터는,
    다수의 매크로 블록들에 대한 평활화 및 디블록킹을 파이프라인화된 방식으로 순차적으로 수행하는 것을 특징으로 하는 비디오 데이터를 디코딩하는 방법.
  6. 제 1 항에 있어서,
    부분적으로 필터링된 블록들을 생성하도록, 매크로 블록들의 제 1 행의 선택된 픽셀 데이터를 평활화 및 디블록킹하는 단계와; 그리고
    상기 부분적으로 필터링된 블록들을 스크래치 패드 메모리에 저장하는 단계
    를 더 포함하는 것을 특징으로 하는 비디오 데이터를 디코딩하는 방법.
  7. 제 6 항에 있어서,
    매크로 블록들의 제 2 행의 선택된 픽셀 데이터를 평활화 및 디블록킹할 때, 제 1 부분적으로 필터링된 블록을 상기 스크래치 패드 메모리로부터 검색(retrieve)하는 단계와; 그리고
    상기 제 1 부분적으로 필터링된 블록에 대한 평활화 및 디블록킹을 완료하도록, 상기 제 1 부분적으로 필터링된 블록의 선택된 픽셀 데이터를 평활화 및 디블록킹하여, 이에 의해 완료된 블록을 생성하는 단계
    를 더 포함하는 것을 특징으로 하는 비디오 데이터를 디코딩하는 방법.
  8. 제 1 항에 있어서, 상기 평활화 및 디블록킹하는 단계는,
    각 매크로 블록의 적어도 하나의 제 1 블록을 구분적 오버랩 평활화 및 디블록킹하는 단계를 포함하여 이루어지며,
    상기 제 1 블록은 제 1 필터 동작에서 부분적으로 프로세싱되며, 상기 제 1 블록은 상기 스크래치 패드 메모리에 저장되며, 상기 제 1 블록은 제 2 필터 동작에서 후속으로 완전히 프로세싱되는 것을 특징으로 하는 비디오 데이터를 디코딩하는 방법.
  9. 압축된 비디오 데이터 스트림으로부터 비디오 정보를 디코딩하는 비디오 프로세싱 시스템에 있어서,
    부분적으로 디코딩된 비디오 데이터를 생성하도록 상기 압축된 비디오 데이터 스트림을 부분적으로 디코드하는 프로세서; 및
    비디오 프레임들을 생성하도록 상기 부분적으로 디코딩된 비디오 데이터를 디코드하는 비디오 디코드 회로
    를 포함하여 이루어지며,
    상기 비디오 디코드 회로는, 상기 비디오 프레임들의 다수의 매크로 블록들에 대해 오버랩 평활화 및 인-루프 디블록킹의 구분적 프로세싱을 연속적으로 수행하는 스크래치 패드 메모리 및 인-루프 필터를 포함하는 것을 특징으로 하는 장치.
  10. 제 9 항에 있어서,
    상기 스크래치 패드 메모리는 매크로 블록들의 제 1 행으로부터 부분적으로 필터링된 블록들을 저장하며, 매크로 블록들의 제 2 행에 대한 오버랩 평활화 및 디블록킹 동안에 각각의 부분적으로 필터링된 블록이 인-루프 필터에 의해 페치될 수도 있는 것을 특징으로 하는 장치.
KR1020077017514A 2005-01-25 2006-01-17 중간 루프 필터 데이터를 저장하는 스크래치 패드 KR20070111467A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/042,218 US7792385B2 (en) 2005-01-25 2005-01-25 Scratch pad for storing intermediate loop filter data
US11/042,218 2005-01-25

Publications (1)

Publication Number Publication Date
KR20070111467A true KR20070111467A (ko) 2007-11-21

Family

ID=36282836

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077017514A KR20070111467A (ko) 2005-01-25 2006-01-17 중간 루프 필터 데이터를 저장하는 스크래치 패드

Country Status (8)

Country Link
US (1) US7792385B2 (ko)
JP (1) JP2008529412A (ko)
KR (1) KR20070111467A (ko)
CN (1) CN101160971B (ko)
DE (1) DE112006000270T5 (ko)
GB (1) GB2435788B (ko)
TW (1) TWI382764B (ko)
WO (1) WO2006081098A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012064083A2 (ko) * 2010-11-08 2012-05-18 엘지전자 주식회사 디블록킹 필터링 방법 및 장치

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4997817B2 (ja) * 2006-04-19 2012-08-08 セイコーエプソン株式会社 画像処理装置
JP4797853B2 (ja) * 2006-07-19 2011-10-19 ソニー株式会社 映像信号処理装置及び方法、並びに映像信号復号装置
JP4830691B2 (ja) * 2006-07-26 2011-12-07 ソニー株式会社 映像信号処理方法及び装置、並びに映像信号復号方法
JP4848892B2 (ja) * 2006-08-25 2011-12-28 ソニー株式会社 映像信号処理装置及び方法、並びに映像信号復号装置
US8879001B2 (en) * 2006-12-28 2014-11-04 Thomson Licensing Detecting block artifacts in coded images and video
WO2009018845A1 (en) * 2007-08-09 2009-02-12 Micronas Gmbh Method for deblocking image data and device providing an image processing deblocking filter
TWI468015B (zh) * 2007-10-26 2015-01-01 Ind Tech Res Inst 視訊解碼的平行處理裝置及方法
US8462841B2 (en) * 2007-12-31 2013-06-11 Netlogic Microsystems, Inc. System, method and device to encode and decode video data having multiple video data formats
US8923384B2 (en) * 2007-12-31 2014-12-30 Netlogic Microsystems, Inc. System, method and device for processing macroblock video data
GB0807804D0 (en) * 2008-04-29 2008-06-04 Imagination Tech Ltd Interlaced video edge filtering
NO329837B1 (no) * 2008-07-09 2011-01-03 Tandberg Telecom As Fremgangsmate for prosessor-effektivt deblokkingsfiltrering
US8872856B1 (en) * 2008-08-14 2014-10-28 Zenverge, Inc. Macroblock based scaling of images using reduced memory bandwidth
US20100053181A1 (en) * 2008-08-31 2010-03-04 Raza Microelectronics, Inc. Method and device of processing video
US20100111166A1 (en) * 2008-10-31 2010-05-06 Rmi Corporation Device for decoding a video stream and method thereof
US9110849B2 (en) * 2009-04-15 2015-08-18 Qualcomm Incorporated Computing even-sized discrete cosine transforms
US9069713B2 (en) * 2009-06-05 2015-06-30 Qualcomm Incorporated 4X4 transform for media coding
US8762441B2 (en) * 2009-06-05 2014-06-24 Qualcomm Incorporated 4X4 transform for media coding
US8451904B2 (en) 2009-06-24 2013-05-28 Qualcomm Incorporated 8-point transform for media data coding
US9081733B2 (en) * 2009-06-24 2015-07-14 Qualcomm Incorporated 16-point transform for media data coding
US9075757B2 (en) * 2009-06-24 2015-07-07 Qualcomm Incorporated 16-point transform for media data coding
US9118898B2 (en) * 2009-06-24 2015-08-25 Qualcomm Incorporated 8-point transform for media data coding
JP2011049740A (ja) * 2009-08-26 2011-03-10 Sony Corp 画像処理装置および方法
TWI424372B (zh) * 2010-03-24 2014-01-21 Altek Corp Selectable image line path means
JP6011341B2 (ja) * 2010-12-07 2016-10-19 ソニー株式会社 画像処理装置、画像処理方法、プログラム及び記録媒体
BR122020013166B1 (pt) 2010-12-07 2021-10-05 Sony Corporation Dispositivo e método de processamento de imagem
US9824066B2 (en) 2011-01-10 2017-11-21 Qualcomm Incorporated 32-point transform for media data coding
US20120194564A1 (en) 2011-01-31 2012-08-02 White Christopher J Display with secure decompression of image signals
US9432700B2 (en) * 2011-09-27 2016-08-30 Broadcom Corporation Adaptive loop filtering in accordance with video coding
CN103260023A (zh) * 2012-02-21 2013-08-21 联咏科技股份有限公司 图像编码/解码系统与其方法
WO2014053517A1 (en) * 2012-10-01 2014-04-10 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Scalable video coding using derivation of subblock subdivision for prediction from base layer
US10999602B2 (en) 2016-12-23 2021-05-04 Apple Inc. Sphere projected motion estimation/compensation and mode decision
US11259046B2 (en) 2017-02-15 2022-02-22 Apple Inc. Processing of equirectangular object data to compensate for distortion by spherical projections
US10924747B2 (en) 2017-02-27 2021-02-16 Apple Inc. Video coding techniques for multi-view video
US11093752B2 (en) 2017-06-02 2021-08-17 Apple Inc. Object tracking in multi-view video
US10754242B2 (en) 2017-06-30 2020-08-25 Apple Inc. Adaptive resolution and projection format in multi-direction video
US20190005709A1 (en) * 2017-06-30 2019-01-03 Apple Inc. Techniques for Correction of Visual Artifacts in Multi-View Images

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4631750A (en) * 1980-04-11 1986-12-23 Ampex Corporation Method and system for spacially transforming images
US5097518A (en) * 1990-02-27 1992-03-17 Eastman Kodak Company Technique for performing digital image scaling by logically combining or replicating pixels in blocks of differing groupsizes
DE69232345T2 (de) * 1991-07-16 2002-07-04 Sharp Kk Verfahren zur Bestimmung der Neigung eines Schriftzeichen enthaltenden Bildes
US5903313A (en) * 1995-04-18 1999-05-11 Advanced Micro Devices, Inc. Method and apparatus for adaptively performing motion compensation in a video processing apparatus
US5872866A (en) * 1995-04-18 1999-02-16 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by predetermination of IDCT results based on image characteristics
US6075918A (en) * 1995-10-26 2000-06-13 Advanced Micro Devices, Inc. Generation of an intermediate video bitstream from a compressed video bitstream to enhance playback performance
DE69712676T2 (de) * 1996-07-08 2003-01-02 Hyundai Curitel, Inc. Verfahren zur Videokodierung
US5923782A (en) * 1996-08-01 1999-07-13 Nynex Science & Technology, Inc. System for detecting and identifying substantially linear horizontal and vertical lines of engineering drawings
US5859651A (en) * 1996-08-19 1999-01-12 International Business Machines Corporation Method and apparatus for block data transfer to reduce on-chip storage for interpolative video resizing
KR100213089B1 (ko) * 1997-01-29 1999-08-02 윤종용 루프필터링 방법 및 루프필터
US6188799B1 (en) * 1997-02-07 2001-02-13 Matsushita Electric Industrial Co., Ltd. Method and apparatus for removing noise in still and moving pictures
US6259734B1 (en) * 1998-04-03 2001-07-10 Matsushita Electric Industrial Co., Ltd. Image processing method, image processing apparatus, and data storage media
ATE267439T1 (de) * 1998-11-09 2004-06-15 Broadcom Corp Anzeigesystem zur mischung von graphischen daten und videodaten
US6614930B1 (en) * 1999-01-28 2003-09-02 Koninklijke Philips Electronics N.V. Video stream classifiable symbol isolation method and system
US6441754B1 (en) * 1999-08-17 2002-08-27 General Instrument Corporation Apparatus and methods for transcoder-based adaptive quantization
KR100335055B1 (ko) * 1999-12-08 2002-05-02 구자홍 압축 영상신호의 블럭현상 및 링현상 제거방법
JP2001285863A (ja) * 2000-03-30 2001-10-12 Sony Corp 画像情報変換装置及び方法
DE10048438A1 (de) * 2000-09-29 2002-04-18 Siemens Ag Referenzbilddrehung
US6819803B2 (en) * 2001-07-02 2004-11-16 International Business Machines Corporation Faster lossless rotation of JPEG images
GB0124882D0 (en) * 2001-10-17 2001-12-05 Koninkl Philips Electronics Nv Improved variable length decoder
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
KR100441869B1 (ko) * 2001-12-28 2004-07-27 주식회사 하이닉스반도체 파이프라인 구조를 사용하는 디블록킹 필터
TW563343B (en) * 2002-03-15 2003-11-21 Via Tech Inc Image frame scaling method
EP1351513A3 (en) 2002-04-01 2005-08-03 Broadcom Corporation Method of operating a video decoding system
US6907079B2 (en) * 2002-05-01 2005-06-14 Thomson Licensing S.A. Deblocking filter conditioned on pixel brightness
MXPA05000335A (es) * 2002-07-09 2005-03-31 Nokia Corp Metodo y sistema para seleccionar tipo de filtro de interpolacion en codificacion de video.
US7379496B2 (en) * 2002-09-04 2008-05-27 Microsoft Corporation Multi-resolution video coding and decoding
JP3680845B2 (ja) * 2003-05-28 2005-08-10 セイコーエプソン株式会社 圧縮動画像の伸張装置及びそれを用いた画像表示装置
US20050013494A1 (en) * 2003-07-18 2005-01-20 Microsoft Corporation In-loop deblocking filter
US7254272B2 (en) * 2003-08-21 2007-08-07 International Business Machines Corporation Browsing JPEG images using MPEG hardware chips
KR101103867B1 (ko) * 2003-09-07 2012-01-12 마이크로소프트 코포레이션 이미지 또는 비디오를 코딩/디코딩하는 방법 및 매체
CN1285214C (zh) * 2004-01-14 2006-11-15 华中科技大学 一种环路滤波方法和环路滤波器
CN1233171C (zh) * 2004-01-16 2005-12-21 北京工业大学 一种用于视频编码的简单化环路滤波方法
US7590059B2 (en) * 2004-05-21 2009-09-15 Broadcom Corp. Multistandard video decoder
US7680351B2 (en) * 2004-05-21 2010-03-16 Broadcom Corporation Video deblocking method and apparatus
US20050281339A1 (en) * 2004-06-22 2005-12-22 Samsung Electronics Co., Ltd. Filtering method of audio-visual codec and filtering apparatus
US8576924B2 (en) * 2005-01-25 2013-11-05 Advanced Micro Devices, Inc. Piecewise processing of overlap smoothing and in-loop deblocking

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012064083A2 (ko) * 2010-11-08 2012-05-18 엘지전자 주식회사 디블록킹 필터링 방법 및 장치
WO2012064083A3 (ko) * 2010-11-08 2012-07-19 엘지전자 주식회사 디블록킹 필터링 방법 및 장치

Also Published As

Publication number Publication date
WO2006081098A1 (en) 2006-08-03
DE112006000270T5 (de) 2007-12-13
JP2008529412A (ja) 2008-07-31
TW200701795A (en) 2007-01-01
GB2435788A (en) 2007-09-05
TWI382764B (zh) 2013-01-11
US7792385B2 (en) 2010-09-07
CN101160971A (zh) 2008-04-09
GB2435788B (en) 2010-08-25
CN101160971B (zh) 2012-03-07
US20060165164A1 (en) 2006-07-27
GB0712488D0 (en) 2007-08-08

Similar Documents

Publication Publication Date Title
KR101227667B1 (ko) 오버랩 평활화 및 인-루프 디블록킹의 구분적 프로세싱
US7792385B2 (en) Scratch pad for storing intermediate loop filter data
US7965773B1 (en) Macroblock cache
US8009740B2 (en) Method and system for a parametrized multi-standard deblocking filter for video compression systems
US20060133504A1 (en) Deblocking filters for performing horizontal and vertical filtering of video data simultaneously and methods of operating the same
EP3386199B1 (en) Lossless compression method and system appled to video hard decoding
JP4393875B2 (ja) 複雑さの軽減された復号化に適したシングルレイヤビデオ符号化されたビットストリームを供給するシステム及び方法
US20060115002A1 (en) Pipelined deblocking filter
US20030152146A1 (en) Motion compensation loop with filtering
JP2006157925A (ja) パイプラインデブロッキングフィルタ
JP5496047B2 (ja) 画像再生方法、画像再生装置、画像再生プログラム、撮像システム、および再生システム
JP2012085001A5 (ko)
JP2007503787A (ja) メモリ帯域幅要求が低いビデオ処理装置
KR20050121627A (ko) 동영상 코덱의 필터링 방법 및 필터링 장치
KR100636911B1 (ko) 색도 신호의 인터리빙 기반 동영상 복호화 방법 및 그 장치
US8249373B2 (en) Image data decoding apparatus and method for decoding image data
KR100556341B1 (ko) 메모리 대역폭이 감소된 비디오 디코더 시스템
KR100991344B1 (ko) 영상을 디코딩하는 방법
JPWO2010095181A1 (ja) 可変長復号化装置
US20070291839A1 (en) Method and device for multimedia processing
KR100821922B1 (ko) 미디어 디코딩용 국부 메모리 관리 장치
KR100672376B1 (ko) 움직임 보상 방법
Bier Introduction to video compression
JP2004129160A (ja) 画像復号装置、画像復号方法および画像復号プログラム
JPH11122615A (ja) 画像復号装置

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application