KR20100074272A - 높은 코딩 효율을 갖는 적응 이미지 필터의 고정 소수점 구현 - Google Patents

높은 코딩 효율을 갖는 적응 이미지 필터의 고정 소수점 구현 Download PDF

Info

Publication number
KR20100074272A
KR20100074272A KR1020107010455A KR20107010455A KR20100074272A KR 20100074272 A KR20100074272 A KR 20100074272A KR 1020107010455 A KR1020107010455 A KR 1020107010455A KR 20107010455 A KR20107010455 A KR 20107010455A KR 20100074272 A KR20100074272 A KR 20100074272A
Authority
KR
South Korea
Prior art keywords
sum
convolution
partial
sums
image filter
Prior art date
Application number
KR1020107010455A
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
Priority claimed from US11/872,024 external-priority patent/US20090097545A1/en
Application filed by 노키아 코포레이션 filed Critical 노키아 코포레이션
Publication of KR20100074272A publication Critical patent/KR20100074272A/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명의 일 실시예에 따르면, 적응 이미지 필터의 계수들을 바이너리 워드들로 표현하는 단계로서, 상기 계수들은 제한되고 상기 바이너리 워드들은 적어도 부분적으로 정밀 인덱스 (precision index)에 의해 구속되는 최대 비트 수를 가지는 단계; 상기 적응 이미지 필터의 컨볼루션 (convolution) 합 및 여러 개의 부분 컨볼루션 (partial convolution) 합들 중 적어도 하나를 산출하는 단계로서, 상기 컨볼루션 합 및 여러 개의 부분 컨볼루션 합들 중 적어도 하나는 제한된 값의 범위 및 고정된 최대 비트 수를 가진 바이너리 표현을 포함하는 단계; 및 적어도 부분적으로 컨볼루션 합 및 여러 개의 부분 컨볼루션 합들 중 적어도 하나에 기초해 적응 이미지 필터의 출력을 생성하는 단계를 포함하는 방법이 개시된다.

Description

높은 코딩 효율을 갖는 적응 이미지 필터의 고정 소수점 구현 {Fixed-point implementation of an adaptive image filter with high coding efficiency}
본 출원은 일반적으로 비디오 코딩에 관한 것으로, 더 상세히 말하면 높은 코딩 효율을 가진 적응 이미지 필터의 고정 소수점 구현에 관한 것이다.
비디오 코덱은 입력 비디오 시퀀스를 저장/전송에 알맞은 압축된 표현으로 변환하는 인코더와, 압축된 비디오 표현을 다시 볼 수 있는 형태로 압축해제할 수 있는 디코더를 포함한다. 일반적으로, 인코더는 비디오를 보다 콤팩트한 형태로 나타내기 위해 오리지널 입력 비디오 시퀀스 내 일부 정보를 포기한다 (가령 보다 낮은 레이트로).
ITU-T H.263 및 H.264 등의 하이브리드 비디오 코덱은 비디오 정보를 두 단계로 인코딩한다. 먼저, 블록과 같은 소정 픽처 (picture) 영역의 픽셀 값들이, 이전에 코딩된 비디오 프레임들 중 코딩될 블록에 밀접하게 대응되는 한 프레임 안의 어떤 영역을 찾아 표시하는 등의 모션 보상 수단이나, 특정 방식에 따라 코딩될 블록의 주변에서 이미 코딩된 픽셀 값들을 이용하는 등의 공간적 수단에 의해 예측된다. 둘째로, 예측 에러, 이를테면 예측된 픽셀들의 블록 및 오리지널 픽셀들의 블록 간의 차가 코딩된다. 이것은 보통 이산 코사인 변환 (DCT, Discrete Cosine Transform)이나 그 변형 버전 등의 특정 변환방식을 이용해 픽셀 값들의 차를 변환하고, DCT 계수들을 양자화하고 양자화된 계수들을 엔트로피 코딩함으로써 수행된다. 양자화 프로세스의 충실도 (fidelity)를 가변함으로써, 인코더는 픽셀 표현의 정밀도, 즉 픽처 화질과, 그에 따라 코딩되는 비디오 표현의 사이즈, 즉 파일 사이즈나 전송 비트 레이트 사이의 밸런스를 통제할 수 있다.
디코더는 인코더와 비슷한 예측 수단을 적용해 출력 비디오 시퀀스를 재구성한다. 재구성될 현재의 프레임 안에서 예측된 소정 픽셀 블록의 표현은, 압축된 표현으로 코딩되어 있는 모션 정보나 공간 정보 및 상기 소정 픽셀 블록에 앞서 디코딩되었던 이미지 블록들로부터의 픽셀 값들을 이용해 디코더에 의해 형성된다. 디코더는 또한 압축된 표현으로 코딩된 DCT 계수들에 대해 DCT엔트로피 디코딩, 역양자화 (dequantization) 및 역변환을 적용함으로써 예측 에러를 복구한다. 예측 및 예측 에러 디코딩의 적용 후에, 디코더는 예측 및 예측 에러 신호들 (픽셀 값들)을 합하여 출력 비디오 프레임을 형성한다. 디코더, 그리고 인코더는 또한 추가적 필터링을 적용하여, 출력 비디오를 비디오 시퀀스의 후속 프레임들을 위한 예측 레퍼런스 (reference)로서 디스플레이 및/또는 저장을 위해 전달하기 전에, 그 출력 비디오의 품질을 향상시킬 수 있다.
본 발명의 전형적 실시예에 따라, 적응 이미지 필터의 계수들을 바이너리 워드들로 표현하는 단계로서, 상기 계수들은 한정되고 상기 바이너리 워드들은 적어도 부분적으로 정밀 인덱스 (precision index)에 의해 구속되는 최대 비트 수를 가지는 단계; 상기 적응 이미지 필터의 컨볼루션 (convolution) 합 및 여러 개의 부분 컨볼루션 (partial convolution) 합들 중 적어도 하나를 산출하는 단계로서, 상기 컨볼루션 합 및 여러 개의 부분 컨볼루션 합들 중 적어도 하나는 제한된 값의 범위 및 고정된 최대 비트 수를 가진 바이너리 표현을 포함하는 단계; 및 적어도 부분적으로 컨볼루션 합 및 여러 개의 부분 컨볼루션 합들 중 적어도 하나에 기초해 적응 이미지 필터의 출력을 생성하는 단계를 포함하는 방법이 개시된다.
본 발명의 다른 전형적 실시예에 따라, 한정되어 있으면서 적어도 부분적으로 정밀 인덱스 (precision index)에 의해 구속되는 최대 비트 수를 가진 바이너리 표현을 가지는 적응 이미지 필터의 계수들; 고정된 최대 비트 수를 가진 것으로, 적어도 상기 계수들 및 이미지 데이터 샘플들을 이용한 컨볼루션 (convolution) 합 및 여러 개의 부분 컨볼루션 (partial convolution) 합들 중 적어도 하나의 산출을 포함하는데, 상기 컨볼루션 합 및 여러 개의 부분 컨볼루션 합들 중 적어도 하나는 제한된 값의 범위를 가지는 정수 연산 구현자 (integer arithmetic implementation)를 특징으로 하는 적응 이미지 필터; 프로세서; 및 상기 프로세서와 통신가능하게 연결되고 상기 계수들 및 여러 개의 이미지 데이터 샘플들을 저장하는데 충분한 메모리 유닛을 포함하는 장치가 개시된다.
본 발명의 또 다른 전형적 실시예에 따라, 컴퓨터 판독가능 매체 상에 수록되는 컴퓨터 프로그램 제품이 개시되며, 이 컴퓨터 프로그램 제품은, 한정적이고 적어도 부분적으로 정밀 인덱스에 의해 구속된 최대 비트 수를 가진 바이너리 표현을 포함하는 적응 필터의 계수들 및 이미지 데이터 샘플들에 기반해 고정된 최대 비트 수를 가지는 정수 연산을 통해 적응 필터의 컨볼루션 합 및 여러 개의 부분 컨볼루션 합들 중 적어도 하나를 산출하고; 컨볼루션 합 및 여러 개의 부분 컨볼루션 합들 중 적어도 하나에 적어도 부분적으로 기초하여, 고정된 최대 비트 수를 가진 바이너리 표현을 포함하는 적응 이미지 필터의 출력을 생성하도록 구성된 컴퓨터 코드를 포함한다.
본 발명의 전형적 실시예들과 그 목적 및 가능한 이익들을 보다 완전히 이해하기 위해, 이제부터 첨부된 도면들과 관련되어 취해지는 아래의 상세 설명을 참조할 것이다.
도 1은 본 발명의 실시예들이 구현될 수 있는 전형적 시스템의 개략도이다.
도 2는 본 발명의 실시예들이 구현될 수 있는 전형적 장치의 사시도이다.
도 3은 도 2 장치의 전형적 회로구성의 개략도이다.
도 4는 전형적 하이브리드 비디오 인코더의 블록도이다.
도 5는 전형적 하이브리드 비디오 디코더의 블록도이다.
도 6은 본 발명의 전형적 실시예에 따른 필터 출력 생성의 흐름도이다.
도 7은 유동 소수점 필터 계수들을 정수 필터 계수들로 변환하는 전형적 구현의 블록도이다.
도 8은 본 발명의 일 실시예에 따른 적응 필터의 전형적 구현에 대한 블록도이다.
도 9는 본 발명의 또 다른 실시예에 따른 적응 필터의 전형적 구현에 대한 블록도이다.
도 10은 본 발명의 또 다른 실시예에 따른 적응 필터의 전형적 구현에 대한 블록도이다.
도 11은 본 발명의 일 실시예에 따른 전형적 클리핑 연산의 개략도이다.
도 12는 본 발명의 또 다른 실시예에 따른 적응 필터의 전형적 구현에 대한 블록도이다.
본 발명의 전형적 실시예들 및 그것의 가능한 이점들은 도 1부터 도 12까지의 도면들을 참조함으로써 잘 이해될 수 있을 것이며, 이때 다양한 도면들의 유사 및 상응하는 부분들에 대해서는 유사 참조부호들이 사용된다.
도 1은 본 발명의 실시예들이 구현될 수 있는 전형적 시스템(10)의 개략도이다. 시스템(10)은 비한정적 예들로서 모바일 전화 네트워크, 무선 LAN (Local Area Network), 블루투스 (Blutooth) 사적 영역의 네트워크, 이더넷 LAN, 토큰 링 LAN, 광역 네트워크, 인터넷 등등을 포함하는 유무선 네트워크들의 임의 조합을 포함할 수 있다. 시스템(10)은 유선과 무선 통신 기기들 양측을 모두 포함할 수 있다.
예를 들어, 도 1에 도시된 시스템(10)은 모바일 전화 네트워크(11) 및 인터넷(28)을 포함한다. 인터넷(28) 연결은 비한정적 예들로서 장거리 무선 접속, 단거리 무선 접속, 그리고 역시 비한정적 예들로서 전화선, 케이블 선, 전력선, TV 브로드캐스팅 등등을 포함하는 다양한 유선 접속을 포함할 수 있다.
시스템(10)의 전형적 통신 기기들에는 PDA (personal digital assistant) 및 모바일 전화기(14)의 결합형, 모바일 전화기(14), 모바일 전화기(12), PDA(16), IMD (integrated messaging device)(18), 데스크 탑 컴퓨터(20), 노트북 컴퓨터(22) 등등이 포함될 수 있으나, 이 예들에 국한되지 않는다. 통신 기기들은 고정형 (stationary) 또는 이동중인 개인에 의해 소지될 때와 같은 모바일형일 수 있다. 통신 기기들은 또한, 비한정적 예들로서 자동차, 트럭, 택시, 버스, 기차, 보트, 비행기, 자전거, 오토바이 등등을 포함하는 운송 모드 안에 자리할 수도 있다. 통신 기기들 전부나 그 일부는 무선 접속(25)을 통해 기지국(24)까지 통화 및 메시지들을 전송하고 서비스 제공자들과 통신할 수 있다. 기지국(24)은 모바일 전화 네트워크(11)와 인터넷(28) 사이의 통신을 가능하게 하는 네트워크 서버(26)에 연결될 수 있다. 시스템(10)은 추가 통신 기기들 및 다른 타입의 통신 기기들을 포함할 수도 있다.
통신 기기들은 비한정적 예로서 CDMA (Code Division Multiple Access), GSM (Global System for Mobile Communications), UMTS (Universal Mobile Telecommunications System), TDMA (Time Division Multiple Access), FDMA (Frequency Division Multiple Access), TCP/IP (Transmission Control Protocol/Internet Protocol), SMS (Short Messaging Service), MMS (Multimedia Messaging Service), 이메일, IMS (Instant Messaging Service), 블루투스, IEEE 802.11 등등을 포함하는 다양한 전송 기술들을 이용해 통신할 수 있다. 본 발명의 다양한 실시예들을 구현하는데 관여하는 통신 기기는 비한정적 예로서 라디오, 적외선, 레이저, 케이블 접속 등등을 포함하는 다양한 매체를 이용해 통신할 수 있다.
도 2는 본 발명의 실시예들이 구현될 수 있는 전형적 장치의 투시도이고, 도 3은 도 2 장치의 전형적 회로구성의 개략도이다. 그러나, 본 발명은 특정한 한 유형의 모바일 기기(12)나 기타 전자 기기에 한정되도록 되는 것은 아니라는 것을 알아야 한다. 도 2 및 3에 도시된 특징들 전부나 그 일부는 도 1에 나타낸 기기들 중 어느 하나나 그 전부에 포함될 수 있다. 도 2 및 3의 모바일 기기(12)는 하우징(30), 디스플레이(32), 키패드(34), 마이크로폰(36), 이어폰(38), 배터리(40), 적외선 포트(42), 안테나(44), 본 발명의 일 실시예에 따른 스마트 카드(46), 카드 판독기(48), 라디오 인터페이스 회로(52), 코덱 회로(54), 제어기(56) 및 메모리를 구비한다. 개별 회로들 및 구성요소들은 이 기술 분야에, 이를테면 노키아 모바일 전화기들에 잘 알려져 있는 모든 종류들이다.
도 4는 전형적 하이브리드 비디오 인코더(200)의 블록도이다. 인코더(200)는 가령 모바일 기기(12) 등의 전자 기기의 일부일 수 있다. 인코더 레벨에서, 현재의 프레임, 가령 현재 인코더에 의해 코딩되는 프레임 내 이미지나 프레임 블록이 인터-예측기 (inter-predictor)(206) 등에 의해 인터 예측 (화면 간 예측)된다. 그와 달리, 이미자나 프레임 블록이 인트라-예측기 (intra-predictor)(208)에 의해 인트라 예측 (화면 내 예측)될 수도 있다. 인터 예측시, 이미지나 프레임 블록은 인코더가 저장한 참조 프레임 내 다른 이미지 블록으로부터 예측된다. 두 이미지 블록들 간 위치의 차를 나타내는 모션 벡터가 압축 표현으로 코딩된다. 인트라 예측에서는, 코딩되는 이미지나 프레임 블록에 앞서 코딩되었던 현재 프레임 내 픽셀 값들이 사용되어 그 코딩되는 이미지나 프레임 블록의 픽셀 값들을 예측하도록 된다. 모드 선택기(210)가 인터 예측이 사용되어야 할지 인트라 예측이 사용되어야 할지를 결정한다. 예측된 이미지 데이터가 실제 프레임 데이터로부터 차감되어 잔차 오차 (residual error)를 낳는다. 변환, 말하자면 이산 코사인 변환 DCT(222)이 그 잔차 오차에 적용되어 DCT 계수들을 생성시킨다. DCT 계수들은 양자화기(224)에 의해 양자화되고 엔트로피 코더(226)에 의해 엔트로피 코딩될 수 있다. 역양자화기(228)와 역변환기(230) 또한 양자화된 계수들에 적용되어 잔차 에러를 생성시킬 수 있다. 생성된 잔차 에러 및 예측 이미지 데이터는 합해져서 참조 프레임을 재구성하도록 된다. 재구성된 참조 프레임은 다시 필터(216)에 의해 필터링되어 이미지 화질을 개선 시킬 수 있다. 필터링 된 참조 프레임은 이제 후속 프레임들을 코딩할 때의 인터 예측을 위해 참조 프레임 메모리(218)에 저장될 것이다. 인코더 레벨에서, 이미지나 프레임의 한 영역에 대해 보간 (interpolation)이 적용될 수 있다. 보간 영역들 안에서, 모션 벡터들의 좌표들은 픽셀의 일부를 가진 값들을 포함할 수 있다. 예를 들어, H.264 비디오 표준은 1/2 픽셀과 1/4 픽셀로 나타낸 좌표들을 가진 모션 벡터들을 포함할 수 있다. 본 발명의 전형적 실시예들은 높은 코딩 효율을 갖는 적응 필터 구현방식들에 대해 개시한다. 전형적인 일 실시예에서, 코딩 효율을 개선하기 위해 적응 필터가 보간에 적용될 수 있고, 필터 계수들은 비트 스트림 안에서 디코더로 전송될 수 있다. 필터 계수들은, 인코더(200) 및 디코더에 알려진 리스트로부터 선택시, 역시 비트 스트림으로 시그날링 되어, 가령 그 리스트로부터 선택된 필터 계수들을 표시할 수 있다.
도 5는 전형적인 하이브리드 비디오 디코더(300)의 블록도이다. 디코더(300)는 모바일 기기(12) 같은 전자 기기의 일부일 수 있다. 디코더에서, 비트 스트림이 엔트로피 디코더(304) 등에 의해 먼저 엔트로피 디코딩될 수 있다. 엔트로피 디코더(304)로부터의 DCT 계수들은 역 양자화기(306) 등에 의해 역 양자화될 수 있다. 역 양자화기(306)로부터 역 양자화된 DCT 계수들은 역 DCT 변환(308)을 통해 역변환되어 잔차 에러를 생성할 수 있다. 모션 벡터들 등의 예측 정보가 예측기(312) 등에 의해 사용되어, 저장된 참조 프레임들이나 현재 프레임의 앞서 디코딩된 픽셀들로부터 예측 데이터를 생성할 수 있다. 예측기는 인터 예측이나 인트라 예측을 적용할 수 있다. 적용할 인터 예측의 유형이 보통 비트 스트림을 통해 디코더(300)로 시그날링 된다. 예측 데이터와 잔차 에러가 합해져서 예비 재구성 이미지를 생성한다. 예비 재구성 이미지는 예측기(312)에 의해 사용되어 예측 데이터를 생성할 수 있다. 블로킹 (blocking) 및 기타 바람직하지 못한 효과를 제거하고 코딩된 프레임의 최종 재구성 버전을 생성하기 위해 예비 재구성 이미지에 대해 필터(318)에 의한 필터링이 인가될 수 있다. 디코더(300) 레벨에서, 필터 계수들이 비트 스트림으로부터 얻어질 수 있다. 디코더(300)는 이제 필터 계수들을 이용해 이미지나 프레임 영역들을 보간할 수 있다. 전형적인 일 실시예에서, 상술한 적응 필터가 가령 H.263, MPEG4 파트 2, H.264, H.265 등등과 같은 비디오 코딩 규격에 사용될 수 있다.
본 발명의 다양한 실시예들은 적응 이미지 필터링의 고정 소수점 구현을 위한 기기들 및 방법들을 제안한다. 이미지나 프레임 보간이, 비디오 코딩이나 비디오 디코딩시의 적응 이미지 필터링의 전형적 애플리케이션이다. 모션 벡터 좌표들이 픽셀들의 일부에 기초해 규정되는 경우, 이미지 값들은 그러한 위치들에서 이웃하는 픽셀 값들 및 가능하다면 다른 이미 보간된 값들을 사용해 보간 된다. 비디오 코덱 H.264에서, 가령 6-탭 (6-tap) 보간 필터, 말하자면 여섯 개의 계수들을 갖는 필터가 사용된다. 비디오 압축시, 코딩 효율성, 즉 압축된 표현의 비트 레이트나 파일 사이즈 대비 비디오 코딩 시스템의 비디오 시퀀스 품질이 적응 보간 필터들의 사용에 의해 개선될 수 있다. 적응 보간 필터들은 각 프레임 또는 각 매크로블록 마다 가변 될 수 있는 필터 계수들을 가진다. 비디오 코딩 시, 보간을 위해 적응 필터들을 사용함으로써, 비디오 신호의 비정적 (non-stationary) 특성이 보다 정확하게 캡처 될 수 있다. 적응 필터들을 사용할 때, 비디오 인코더(200)는 이를테면 필터 계수들을 비트 스트림으로 디코더에 전송할 수 있다. 인코더(200)는 그 비디오 신호를 분석함으로써 프레임, 슬라이스 또는 매크로블록 레벨로 필터 계수들을 바꿀 수 있다. 디코더(300)는 인터 예측 프로세스 시, 미리 규정된 필터가 아닌 수신한 필터 계수들을 사용한다.
적응 필터의 고정 소수점 정수 구현시, 필터 계수가 임의의 값을 취할 수 있다고 하더라도 n이 정수인 n-비트 구현을 제공하는 구조를 결정하도록 한다. 그 필터 계수들이 낮은 정밀도로써 정해져서 n-비트 누산기들 (accumulators)을 오버플로 시키지 않고 보간이 n-비트 정수 연산 안에서 수행되게 하는 것이 가능하다. 그러나, 이러한 방식은 바람직하지 못한데, 그것은 필터 계수들의 줄어든 정밀도로 인해 중대한 코딩 효율의 불이익을 가져오기 때문이다. 본 발명의 실시예들은 높은 코딩 효율을 달성할 수 있는 고정 소수점 연산을 서술할 것이다. 본 발명의 다양한 실시예들은 인코더 및 디코더 레벨에서 구현될 수 있다. 전형적인 일 실시예에서, 16 비트 구현방식이 활용된다.
전형적인 6-탭 필터가 개시되고 있지만, 본 발명이 6-탭 필터들에 국한되는 것은 아니다. 6-탭 필터의 선택은 다양한 실시예들을 예시하기 위한 일례일 뿐이므로 본 발명의 한 실시예에 대한 제한 또는 요건으로 파악해서는 안 될 것이다. 이 명세서에 기술된 실시예들 및/또는 개념들에 기반할 때 이 분야의 당업자라면 임의의 탭 길이 및/또는 이차원적 분리 불가형 (non-separable) 필터들에 대한 일반화에 대해 혼동의 여지가 없을 것이다.
유동 소수점 필터 계수들 C0', C1',...,C5'을 갖는 필터에 있어서, 이미지 샘플들 Xk, Xk -1,...,Xk -5에 대응하는 필터 출력은 아래 식과 같다.
Figure pct00001
위에서, k, k-1,...,k-5는 이미지 데이터 샘플들의 인덱스들이다. 정수 연산 안에서 필터링을 수행하기 위해, 우선 유동 소수점 필터 계수들이 아래 식과 같이 정수 값들로 매핑 된다.
Figure pct00002
위에서 int(.)는 유동 부분을 제거함으로써 유동 소수점 넘버를 정수로 변환하는 캐스팅 연산자 (casting operator)를 가리키고, <<는 레프트 쉬프트 (left shift) 연산자이고, N은 레프트 쉬프트 회수를 나타내는 양의 정수이다. 정수 N은 정수 필터 계수들의 정밀도를 결정하는데, 이를테면 N의 값이 클수록 정수 필터 계수들의 정밀도가 더 우수하게 된다. 그러나, 한 전형적 실시예에서 N은 적응 필터의 정수 연산 구현시 오버플로를 피할 만큼 충분히 작을 것이다. 정수 연산의 필터링은 아래 식과 같이 정의될 수 있다.
Figure pct00003
위에서 M은 2N에 해당하고 R은 라운딩 오프셋 (rounding offset)으로 일 실시예에서 M/2에 해당한다. 간단히 하기 위해, 라운딩 오프셋을 이제부터는 0이라고 전제한다. 이는, 개시된 실시예들에서의 결과들이 R의 값에 의해 영향받지 않기 때문이다. 그러나, 다른 실시예들에서 그것이 결과들에 영향을 미친다면 라운딩 오프셋이 고려될 수 있다. 전형적 실시예에서, 계산 면에서 비용이 높은 약수 (devisor) 연산자를 사용하는 대신, 라이트 쉬프트 (right shift) 연산자가 사용된다. 따라서 다음과 같이 된다.
Figure pct00004
도 8은 전형적인 6-탭 필터의 정수 구현을 나타낸 것이다. 식 (4)의 연산이 16 비트 연산으로 수행되게 하기 위해, 식 (5)의 컨볼루션 합은 픽셀 및 계수 값들과 상관없이 16 비트 레지스터들에 맞춰진다.
Figure pct00005
16 비트 연산시 양의 오버플로 및 음의 오버플로를 피하는 것이 바람직하다. 전형적 일 실시예에서, 양의 오버플로는 255 x (양의 Ci의 합)을 유부호 (signed) 16 비트 레지스터에 맞춤으로써 피할 수 있다 (i=0부터 5). 전형적 일 실시예에서, 음의 오버플로는 255 x (음의 Ci의 합)을 부호 있는 16 비트 레지스터에 맞춤으로써 피할 수 있다 (i=0부터 5). 픽셀 샘플들이 8 비트로 구속되었다고 가정할 때, 픽셀이 취할 수 있는 최대 및 최소값은 255와 0이다. 양의 오버플로를 피하기 위해 다음과 같이 한다,
255 x (양의 Ci의 합) ≤215-1 (i=0부터 5)
(양의 Ci의 합) ≤128 (i=0부터 5)
Ci < 16 (모든 계수들이 양수인 최악의 경우를 전제할 때). 음의 오버플로를 피하기 위해 다음과 같이 한다,
255 x (음의 Ci의 합) ≥ -(215-1) (i=0부터 5)
(음의 Ci의 합) ≥ -128 (i=0부터 5)
Ci > 16 (모든 계수들이 음수인 최악의 경우를 전제할 때).
상술한 바와 같이, 모든 필터 계수들에 대해 -16 < Ci<16일 때, 16 비트 연산이 보장된다. N의 값이 4인 경우, 필터 계수들의 값은 -15/16, -14/16... 14/16, 15/16일 수 있다. 이것은 필터 계수들의 정밀도가 1/16임을 의미한다. 1/16의 필터 계수 정밀도는 너무 낮은데, 이는 그것이 적응 보간 방식의 코딩 효율을 낮추기 때문이다.
도 6은 본 발명의 전형적 일 실시예에 따른 필터 출력 생성의 흐름도이다. 필터 계수들이 유동 소수점 값들을 가지는 경우, 블록 410에서 필터 계수들의 값들이 정수들로 변환된다. 변환 정밀도는 정밀 인덱스 (precision index)에 의해 구속될 수 있다. 보다 높은 정밀도는 보다 큰 정밀 인덱스를 가지고 얻어질 수 있다. 블록 420에서, 정수 값 필터 계수들 및 이미지 데이터 샘플들이 컨볼루션 합 또는 여러 부분 컨볼루션 합들을 산출하는데 사용될 수 있다. 큰 정밀 인덱스는 n이 정수인 n-비트 연산으로 컨볼루션 합이나 부분 컨볼루션 합을 산출할 때 양이나 음의 오버플로를 가져올 수 있다. 양 또는 음의 오버플로를 피하기 위해, 필터 계수들은, 이를테면 양 및/또는 음의 오버플로를 방지할 수 있는 구속요건이나 상하 한도 등을 통해 제한될 수 있다. 블록 430에서, 필터 출력이 생성된다. 전형적 일 실시예에서, 필터 출력은 블록 420에서 산출된 컨볼루션 합으로부터 생성된다. 다른 전형적 실시예에서, 필터 출력은 블록 420에서 산출된 부분 컨볼루션 합들로부터 생성된다. 블록 420 안에서 수행되는 그 연산들은 필터링 프로세스의 구현방식에 따라 좌우될 수 있다.
도 7은 유동 소수점 필터 계수들을 정수 필터 계수들로 변환하는 전형적 구현에 대한 블록도이다. 이 전형적 실시예에서, 추정기(510)가 유동 소수점 필터 계수들 C0', C1',...,C5'을 생성할 수 있다. 정밀 인덱스 N에 대해, 유동 소수점-정수 값 컨버터(520)가 그 유동 소수점 계수들을 N 만큼 레프트 쉬프트 함으로써 2N 배 스케일링 할 수 있다. 전형적인 일 실시예에서, 정수 값 필터 계수들은 스케일링 된, 혹은 레프트 쉬프트 된 유동 소수점 계수들의 정수 부분에 해당한다. 도 7에서 복수의 컨버터들(520)이 보이고 있지만, 다른 실시예에서 상기 동일한 컨버터가 한 개를 초과하는 유동 소수점 필터 계수를 정수 필터 계수들로 변환하는데 사용될 수도 있다. 다른 전형적 실시예에서, 유동 소수점 계수들에서 정수 계수들로의 변환은 추정기(510) 안에서 구현될 수 있다. 예를 들어, 필터 계수들이 재귀적 알고리즘, 말하자면 LMS (least mean square 최소 평균 자승) 알고리즘을 이용해 필터 계수들이 추정될 때, 그러한 변환은 알고리즘의 각 반복 (iteration) 마다 적용될 수 있다.
도 9는 본 발명의 또 다른 실시예에 따른 적응 필터의 전형적 구현에 대한 블록도이다. 레지스터들(710)에 저장된 이미지 데이터 샘플들 Xk, Xk -1,...,Xk -5, 및 대응하는 정수 계수들 C0, C1,...,C5이 정수 곱셈기들(720)을 이용해 곱해진다. 곱셈 결과들의 두 부분집합, 말하자면 정수 곱셈기들의 출력들은 두 개의 상이한 누산기들(730 및 730')로 공급된다. 누산기들(730 및 730')은 각기 부분 컨볼루션 합들인 S1 및 S2를 생성한다. S1 및 S2 각각은 필터 계수들의 한 부분집합과 관련된 컨볼루션 합인데, 이를테면 S1은 C0, C1 및 C2, 그리고 대응하는 픽셀들의 값들과 관련되어 있는 반면, S2는 C3, C4 및 C5, 그리고 대응하는 픽셀들의 값들과 관련된다. S1 및 S2는 둘 다 쉬프팅 연산기(740)에 의해 가령 1씩 라이트 (우측) 쉬프트 된다. 쉬프트 된 결과들이 다 합해지고, 쉬프팅 연산기(750)가 그 합을 N 씩 레프트 (좌측) 쉬프트 시켜 필터 출력 Y를 생성한다. 필터 출력 Y는 (S1+S2) >> N이 되는데, 여기서 N은 정수 필터 계수들의 정밀도를 결정하는 정밀 인덱스이다. 전형적인 실시예에서, 정밀 인덱스는 오버플로를 피하기 위해 S1 및 S2에 대한 구속요건에 기초해 정의된다. 16-비트 구현시, 오버플로 및 언더플로 (underflow)를 다음과 같이 피하도록 한다,
-(215-1) ≤ S1 ≤ 215-1, 그리고 -(215-1) ≤ S2 ≤ 215-1.
이미지 픽셀 값들이 보통 양수이고 [0,255]의 정수 범위에 있기 때문에, 다음과 같은 결과가 나온다,
255 x (양의 Ci의 합) ≤ 215-1 (i=0부터 2 또는 i=3부터 5)
255 x (음의 Ci의 합) ≥ -(215-1) (i=0부터 2 또는 i=3부터 5)
즉, 양의 Ci의 합 ≤ 128 및 (음의 Ci의 합) ≥ -128이 된다. 따라서 323 < Ci < 32가 된다. N이 5이면 필터 계수들의 값들은 -31/32, -30/32...30/32, 31/32가 될 것이다. 이것은 필터 계수들의 정밀도가 1/32로서, 필터 계수들에 대한 아무 제한도 없이 도 8에 나타낸 실시예에 따라 수행된 보간을 통해 획득된 필터 계수들의 정확도보다 두 배가 더 높다는 것을 의미한다. 달리 말해, 양의 계수들의 합과 음의 계수들의 합을 제한함으로써 도 9에 도시된 실시예는, 한 컨볼루션 합을 가지고 있고 아무 제한도 강제되지 않는 적응 필터의 구현과 비교할 때, 필터 계수들이 2배의 정밀도를 갖는 필터링 프로세스의 16-비트 구현을 제공한다.
도 8은 본 발명의 전형적인 일 실시예에 따른 적응 필터의 전형적 구현에 대한 블록도이다. 이 전형적 실시예에 따르면, 레지스터들(610)에 저장된 이미지 데이터 샘플들 C0, C1,...,C5 및 대응되는 정수 계수들 Xk, Xk -1,...,Xk -5이 정수 곱셈기들(620)을 사용해 곱해진다. 곱셈 결과들, 이를테면 정수 곱셈기들의 출력들은 누산기(630)로 제공된다. 누산기(630)는 필터 계수들에 해당하지만 그 계수들에 아래와 같은 제한이 가해진 상태로 컨볼루션 합을 산출한다,
255 x (양의 Ci의 합) ≤ 215-1 (i=0부터 5)
255 x (음의 Ci의 합) ≥ -(215-1) (i=0부터 5),
혹은 마찬가지로서,
255 x (양의 Ci의 합) ≤ 128 (i=0부터 5)
255 x (음의 Ci의 합) ≥ -128 (i=0부터 5)
이 경우, N은 6 정도 될 수 있다. N=6에서, 필터 계수들은 -63/64, -62/64...62/64, 63/64의 값들을 취할 수 있다. 그보다 높은 정밀도를 사용하는 경우, 이를테면 N=7인 경우, 예를 들어 적어도 한 필터 계수가 음수인 필터들은 오버플로를 일으킬 수 있다. N=6에 대해 얻어진 정밀도는 N=4에 대한 정밀도보다 4 배 더 높다.
도 10은 본 발명의 또 다른 실시예에 따른 적응 필터의 전형적 구현에 대한 블록도이다. 이 전형적 실시예에 따르면, 레지스터들(810)에 저장된 이미지 데이터 샘플들 Xk, Xk -1,...,Xk -5 및 대응되는 정수 계수들 C0, C1,...,C5이 정수 곱셈기들(820)을 사용해 곱해진다. 곱셈 결과들의 두 부분집합들, 이를테면 정수 곱셈기들의 출력들은 두 개의 서로 다른 누산기들(830 및 830')로 제공된다. 누산기들(830 및 830')은 각기, 부분 컨볼루션 합들인 S1 및 S2를 생성한다. S1은 필터 계수들 C0, C1 및 C2 및 대응하는 데이터 샘플들, 즉 Xk, Xk -1 및 Xk -2에 해당하는 입력을 가지고 곱셈기들(820)에 의해 생성되는 곱셈 결과들에 해당한다. 부분 합 S2는 필터 계수들 C3, C4 및 C5 및 대응하는 데이터 샘플들, 즉 Xk -3, Xk -4 및 Xk -5에 해당하는 입력을 가지고 곱셈기들(820)에 의해 생성되는 곱셈 결과들에 해당한다. 다음은 오버플로를 피하기 위한 조건이다,
양의 C0-C1-C2의 합 ≤ 128, 그리고 음의 C0-C1-C2의 합 ≥ -128, 및
양의 C3-C4-C5의 합 ≤ 128, 그리고 음의 C3-C4-C4의 합 ≥ -128.
부분 컨볼루션 합 S1은 유부호 (signed) 연산을 이용해 산출되는데, 이는 필터 계수들 C0, C1 및 C2 중 어느 하나가 양일 수도 있고 음일 수도 있기 때문이다. 통상의 이미지 필터들, 이를테면 보간 필터들에 있어서, 필터 출력은 보통 양수가 되는데, 이는 필터 출력이 이미지 픽셀 값을 나타내기 때문이다. 부분 컨볼루션 합들인 S1 및 S2가 보통 양수인 한 전형적 실시예에서, 필터는 C0 = C5, C1 = C4, 및 C2 = C3로서 대칭이 될 때, 부분 컨볼류션 합 S1 및/또는 부분 컨볼루션 S2가 클리핑 연산기(840 또는 840')에서 클리핑 된다 (clippled). 즉, S1이 음수이면, S1은 0으로 클리핑 되고/되거나 S2가 음수이면, S2가 0으로 클리핑 된다. 음의 부분 컨볼루션 합들을 0으로 클리핑할 때, S1 및 S2의 부호 비트는 보통 0이다. 부분 컨볼루션 합들을 클리핑한 후, 무부호 (unsigned) 덧셈 연산기(850)가 사용되어 S1 + S2를 산출할 수 있다. 유부호 덧셈기 대신, 클리핑 및 무부호 덧셈기를 사용해 S1 + S2를 산출함으로써 원 비트 (one bit) 정밀도가 얻어질 수 있다. 이러한 보간 프로세스를 통해, N은 7이 될 수 있고 이제 계수들은 -127/128, -126/128,...126/128, 127/128의 값들을 취할 수 있게 되어 그 정밀도가 1/128이 되게 된다.
도 11은 유부호 정수를 무부호 정수로 클리핑하는 것을 구현한 예의 블록도이다. 16-비트 레지스터(841)에 저장된 유부호 정수가 음수이면, 부호 비트 (842)는 1이 된다. 유부호 정수가 양수이면, 그 부호 비트는 0이 된다. 클리핑 연산은 부호 비트의 값을 0으로 바꾸고, 모든 다른 비트들을 0으로 바꾼다. 다시 말해, 클리핑은 음의 정수를 0으로 바꾼다. 따라서 클리핑 후, 클리핑 된 정수들의 부호 비트들은 0이 된다.
도 12는 본 발명의 또 다른 실시예에 따른 적응 필터의 전형적 구현에 대한 블록도이다. 이 전형적 구현방식에서 정수 곱셈기들(920)은 레지스터들(910)에 있는 이미지 데이터 샘플들 Xk, Xk -1,..., Xk -5를 해당 필터 계수들 C0, C1,...C5,과 곱하여, 각각의 필터 계수 Ci에 대해 여섯 개의 곱셈 결과들, 이를테면 곱셈 결과 CiXk-i를 생성한다. 누산기(930)는 필터 계수들 C0, C1 및 C2에 대응하는 곱셈 결과들을 이용해 부분 컨볼루션 합 S1, 이를테면 S1 = C0Xk + C1Xk -1 + C2Xk -2를 산출한다. 다른 누산기(930')는 계수들 C3, C4 및 C5에 대응하는 다른 컨볼루션 합 S2, 이를테면 S2 = C3Xk -3 + C4Xk -4 + C5Xk -5를 산출한다. 라이트 쉬프트 연산기들(940 및 940')은 각기 부분 컨볼루션 합들인 S1 및 S2에 적용된다. 누산기(950)은 합 (S1>>1)+(S2>>1)-(K<<N)을 산출하는데, 여기서 K는 정수이고 N은 필터 계수들의 정밀 인덱스이다. 쉬프트 연산기(960)는 그 합 (S1>>1)+(S2>>1)-(K<<N)을 N 만큼 쉬프트한다. 그 결과인 [(S1>>1)+(S2>>1)-(K<<N)]>>N은 K 만큼 증가하여 필터 출력을 생성하도록 한다. 보간 필터들 같은 여러 필터들에 있어서, 양의 필터 계수들의 크기는 보통 음의 필터 계수들의 크기보다 더 크다. 전형적 실시예에서, 부분 컨볼루션 합들의 값의 범위가 쉬프트 된다. 부분 컨볼루션 합들의 값의 범위를 쉬프트 하는 일은 바이너리 워드들, 가령 통상적 보간 필터들에서 발생할 가능성이 없는 음의 부분 컨볼루션 합들에 대한, 부분 컨볼루션 합들의 바이너리 표현들의 낭비를 방지할 수 있다. 다시 말해, 양의 부분 컨볼루션 합들의 값들로 할당되는 바이너리 워드들의 개수가 음의 컨볼루션 합들의 값들로 할당되는 바이너리 워드들의 개수보다 더 많다. 필터 출력은
Figure pct00006
이 된다. 이 전형적 구현방식에서, 가령 K=128=27이고 N=7에 대해, 다음과 같이 양과 음의 오버플로를 방지하도록 한다,
255 x (양의 Ci의 합) ≤ (215-1) + 214 (i=0부터 2, 또는 i=3부터 5)
255 x (음의 Ci의 합) ≥ -(215-1)+ 214 (i=0부터 2, 또는 i=3부터 5)
즉,
(양의 Ci의 합) ≤ 27 + 26 (i=0부터 2, 또는 i=3부터 5)
(음의 Ci의 합) ≥ -27 + 26 (i=0부터 2, 또는 i=3부터 5)
이러한 보간 프로세스에서, N은 7로 주어질 수 있고, 이제 계수들은 -63/128, -62/128...190/128, 191/128의 값들을 취할 수 있으며, 그 정밀도는 1/128이 된다. 이 방법의 이점은, 양의 필터 계수들을 표현하기 위해 사용된 값들의 수가 음의 필터 계수들을 표현하는데 사용되는 값들의 수보다 많다는 것으로, 이를테면, 음의 필터 계수들을 나타내는 값들은 -63/128,...,-1/128인 반면에 양의 필터 계수들을 나타내는 값들은 1/128,...,192/128이 되는 것이다. 다른 전형적 실시예에서, 값들의 범위의 쉬프트가 도 8의 컨볼루션 합 S에도 적용될 수 있다. 컨볼루션 합, 부분 컨볼루션 합들 또는 스케일링 된 부분 컨볼루션 합들 같은 중간값들의 범위에서 쉬프트를 적용한다는 것이 이 분야의 당업자에게는 자명한 일일 것이다.
적응 필터가 보간 필터로서 사용되거나 보간 필터를 구비하는 전형적 실시예에 따르면, 정밀 인덱스 N은 서로 다른 보간 포인트들, 가령 그 좌표들이 픽셀의 일부로서 정의되어 보통 서브-픽셀들이라고 불리는 포인트들에 대해 서로 상이할 수 있다. 예를 들어, 한 보간 서브-픽셀 포인트에 대해 그 정밀 인덱스는 4인 반면 다른 보간 서브-픽셀 포인트에 대해서는 정밀 인덱스가 6일 수 있다. 또 다른 실시예에서, 정밀 인덱스는 필터 계수들의 유동 소수점 값들에 기초해 규정될 수 있다. 예를 들어, 필터 계수들이 상대적으로 작으면, 정수 표현으로 큰 N이 선호될 수 있다. 예를 들어 필터 계수들이 [-0.5, 0.5] 범위 안에 있는 경우, 정밀 인덱스는 8일 수 있다. 다른 구현방식들 역시 서로 다른 보간 포인트들에 대해 N 값을 결정하는 서로 다른 방식들을 사용할 수 있다.
본 발명의 전형적 실시예들은 높은 코딩 효율을 가진 적응 보간 필터의 16-비트 연산 구현방식을 개시한다. 상한 및 하한 구속요건들 같은 한계치들을 필터 계수들에 적용함으로써, 보다 높은 정밀도의 필터 계수들이 얻어진다. 본 발명의 전형적 실시예들은 한정적인 의미로서 해석되어서는 안 될 것이다. 예를 들어, 본 발명의 실시예들의 개시 사항은 이미지나 프레임 보간에 적용될 수 있고, 또한 비한정적 예들로서 디블록킹 (deblocking) 필터들, 이미지 및 비디오 인핸스먼트 (enhancement) 및 비디오 이미지 편집을 포함하는 다른 비디오 코딩, 비디오 프로세싱 및 이미지 프로세싱 애플리케이션들에도 적용될 수 있다. 본 발명에서 기술한 적응 필터의 전형적 16-비트 구현방식을 본 발명의 전형적 실시에들 및 개시내용들에 기초해 적응 필터의 보다 일반적인 n-비트 연산 구현방식으로 확장하는 것 역시 당업자라면 당연히 예상할 수 있는 사실이다.
본 발명의 실시예들은 소프트웨어, 하드웨어, 애플리케이션 로직 또는 소프트웨어, 하드웨어 및 애플리케이션의 조합을 통해 구현될 수 있다. 소프트웨어, 애플리케이션 로직 및/또는 하드웨어는 칩셋, 모바일 기기, 데스크 탑, 랩 탑, 또는 서버상에 상주할 수 있다. 애플리케이션 로직, 소프트웨어 또는 어떤 명령 집합은 다양한 통상의 컴퓨터 판독가능 매체 중 어느 하나에 보유됨이 바람직하다. 이 명세서의 문맥에서 "컴퓨터 판독가능 매체"란 명령 실행 시스템, 장치 또는 기기와 관련해 또는 그들에 의해 사용되는 명령들을 포함, 저장, 통신, 전파 또는 전송할 수 있는 임의의 매체나 수단일 수 있다.
바람직하다면, 여기 논의된 여러 기능들이 차례로, 그리고/또는 서로 동시발생적으로 수행될 수 있다. 게다가, 원하는 경우, 상기 개시된 기능들 중 하나 이상은 옵션사항이거나 결합이 이뤄질 수 있다.
이하에 첨부된 청구항들의 범위, 해석 또는 응용을 전혀 제한함이 없이, 여기 개시된 하나 이상의 전형적 실시예들의 기술적 이점이 높은 코딩 효율이 될 수 있다. 여기 개시된 하나 이상의 전형적 실시예들의 다른 가능한 기술적 이점은 낮은 계산 복잡도를 가진 적응 필터 구현일 수도 있다. 여기 개시된 하나 이상의 전형적 실시예들의 또 다른 기술적 이점은 비디오 코딩 및 이미지 프로세싱을 위한 간단하고도 효율적인 적응 필터링일 수도 있을 것이다.
상기 내용은 본 발명의 전형적 실시예들을 기술하였지만, 그 내용이 한정하는 의미로서 파악되어서는 안 된다는 것을 주지해야 한다. 그보다는 첨부된 청구항들에 정의된 것 같은 본 발명의 범위에서 벗어나지 않은 채 여러 가지 변경 및 수정된 버전이 있을 수 있을 것이다.

Claims (22)

  1. 적응 이미지 필터 (adaptive image filter)를 포함하고,
    상기 적응 이미지 필터의 적어도 한 정수 계수는 제한되고, 상기 적응 이미지 필터의 컨볼루션 합 및 여러 부분 컨볼루션 합들 중 적어도 하나가 상기 적어도 한 정수 계수에 적어도 일부 기초하여 정해지고, 상기 컨볼루션 합 및 여러 부분 컨볼루션 합들 중 상기 적어도 하나는 고정된 최대 비트 수를 가진 바이너리 표현을 포함하고, 상기 적어도 한 정수 계수는 정밀 인덱스 (precision index)에 의해 구속된 비트 수를 가진 바이너리 표현을 포함함을 특징으로 하는 장치.
  2. 제1항에 있어서, 상기 적응 이미지 필터는 비디오 인코더의 적응 보간 필터를 포함하고, 상기 정밀 인덱스 및 상기 적어도 한 정수 계수 중 적어도 하나가 비트스트림 안에 코딩됨을 특징으로 하는 장치.
  3. 제1항에 있어서, 상기 적응 이미지 필터는 비디오 디코더의 적응 보간 필터를 포함하고, 상기 정밀 인덱스 및 상기 적어도 한 정수 계수 중 적어도 하나가 비트스트림으로부터 디코딩됨을 특징으로 하는 장치.
  4. 제1항에 있어서, 상기 장치는 칩셋 (chipset)임을 특징으로 하는 장치.
  5. 제4항에 있어서,
    적어도 덧셈 연산 및 바이너리 쉬프트 (binary shift) 연산을 수행하도록 구성된 프로세서를 더 포함함을 특징으로 하는 장치.
  6. 제5항에 있어서,
    상기 프로세서와 통신가능하게 연결되어 있고, 상기 적어도 한 정수 계수를 저장하도록 구성된 메모리 유닛을 더 포함함을 특징으로 하는 장치.
  7. 제1항에 있어서, 상기 적응 이미지 필터는 비디오 인코더의 적응 보간 필터를 포함하고, 상기 정밀 인덱스는 서로 다른 보간 포인트들에 대해 서로 상이함을 특징으로 하는 장치.
  8. 제1항에 있어서, 상기 적응 이미지 필터는 비디오 디코더의 적응 보간 필터를 포함하고, 상기 정밀 인덱스는 서로 다른 보간 포인트들에 대해 서로 상이함을 특징으로 하는 장치.
  9. 적응 이미지 필터의 적어도 한 개의 제한된 정수 계수에 적어도 일부 기반하여 컨볼루션 합 및 여러 개의 부분 컨볼루션 합들 중 적어도 하나를 결정하는 단계로서, 컨볼루션 합 및 여러 개의 부분 컨볼루션 합들 중 상기 적어도 하나는 고정 최대 비트 수를 가진 바이너리 표현으로 제한되는 단계; 및
    컨볼루션 합 및 여러 개의 부분 컨볼루션 합들 중 상기 적어도 하나에 적어도 일부 기반하여 상기 적응 이미지 필터의 출력을 생성하는 단계를 포함함을 특징으로 하는 방법.
  10. 제9항에 있어서, 상기 적응 이미지 필터는 보간 필터를 포함함을 특징으로 하는 방법.
  11. 제10항에 있어서, 상기 적어도 한 개의 제한된 정수 계수는 서로 다른 보간 포인트들에 대해 서로 다른 연산 정밀도 (accuracy)를 가짐을 특징으로 하는 방법.
  12. 제9항에 있어서,
    상기 적응 이미지 필터의 유동 소수점 (floating point) 계수 중 적어도 하나를 상기 적응 이미지 필터의 대응되는 적어도 한 정수 계수로 변환하는 단계를 더 포함하고,
    상기 대응되는 적어도 한 정수 계수는 고정된 제2의 최대 비트 수를 가진 바이너리 표현을 가지고, 상기 변환하는 단계는 상기 대응하는 적어도 한 정수 계수를 제한하는 단계를 더 포함함을 특징으로 하는 방법.
  13. 제9항에 있어서, 상기 생성하는 단계는 상기 컨볼루션 합을 쉬프트하는 단계를 포함함을 특징으로 하는 방법.
  14. 제9항에 있어서, 상기 생성하는 단계는,
    상기 여러 개의 부분 컨볼루션 합들을 라이트 쉬프트 하는 단계 (right shifting);
    상기 라이트 쉬프트 된 여러 개의 부분 컨볼루션 합들의 합을 산출하는 단계; 및
    상기 라이트 쉬프트 된 여러 개의 부분 컨볼루션 합들의 상기 산출된 합을 라이트 쉬프트 하는 단계를 포함함을 특징으로 하는 방법.
  15. 제9항에 있어서, 상기 생성하는 단계는,
    상기 여러 개의 부분 컨볼루션 합들의 어느 음 (negative)의 부분 컨볼루션 합을 0으로 클리핑 (clipping) 한 후, 상기 여러 개의 부분 컨볼루션 합들의 합을 산출하는 단계; 및
    상기 여러 개의 부분 컨볼루션 합들의 상기 산출된 합을 라이트 쉬프트 하는 단계를 포함함을 특징으로 하는 방법.
  16. 제9항에 있어서, 상기 생성하는 단계는,
    상기 여러 개의 부분 컨볼루션 합들을 라이트 쉬프트 하는 단계;
    상기 라이트 쉬프트 된 여러 개의 부분 컨볼루션 합들 및 한 음수의 합을 산출하는 단계; 및
    상기 라이트 쉬프트 된 여러 개의 부분 컨볼루션 합들 및 상기 음수의 상기 산출된 합을 라이트 쉬프트 하는 단계를 포함함을 특징으로 하는 방법.
  17. 제9항에 있어서, 상기 적어도 한 개의 제한된 정수 계수는, 상기 적어도 한 개의 제한된 정수 계수의 적어도 한 부분집합 내 하나 이상의 제한된 양의 정수 계수들의 합이 상한 (upper bound)을 가지고, 상기 적어도 한 개의 제한된 정수 계수의 적어도 한 부분집합 내 하나 이상의 음의 정수 계수들의 합은 하한 (lower bound)을 갖도록 제한됨을 특징으로 하는 방법.
  18. 제17항에 있어서, 상기 생성하는 단계는,
    상기 여러 개의 부분 컨볼루션 합들을 라이트 쉬프트 하는 단계;
    상기 라이트 쉬프트 된 여러 개의 부분 컨볼루션 합들의 합을 산출하는 단계; 및
    상기 라이트 쉬프트 된 여러 부분 컨볼루션 합들의 상기 산출된 합을 라이트 쉬프트 하는 단계를 포함함을 특징으로 하는 방법.
  19. 제17항에 있어서, 상기 생성하는 단계는,
    상기 여러 개의 부분 컨볼루션 합들 중 어느 한 음의 부분 컨볼루션 합을 0으로 클리핑한 후 상기 여러 개의 부분 컨볼루션 합들의 합을 산출하는 단계; 및
    상기 여러 개의 부분 컨볼루션 합들의 상기 산출된 합을 라이트 쉬프트 하는 단계를 포함함을 특징으로 하는 방법.
  20. 제9항에 있어서, 상기 적어도 한 개의 제한된 정수 계수들의 적어도 한 부분 집합은, 상기 적어도 한 개의 제한된 정수 계수의 적어도 다른 한 부분 집합과 상이한 값의 범위를 가짐을 특징으로 하는 방법.
  21. 제9항에 있어서, 양수를 갖는 상기 적어도 한 개의 제한된 정수 계수의 합은, 음수를 갖는 상기 적어도 한 개의 제한된 정수 계수와는 다른 값의 범위를 가짐을 특징으로 하는 방법.
  22. 컴퓨터 판독가능 매체에 수록된 컴퓨터 프로그램 제품에 있어서,
    적응 이미지 필터의 적어도 한 개의 제한된 정수 계수에 적어도 일부 기반하여 컨볼루션 합 및 여러 개의 부분 컨볼루션 합들 중 적어도 하나를 결정하도록 하고, 컨볼루션 합 및 여러 개의 부분 컨볼루션 합들 중 상기 적어도 하나는 고정 최대 비트 수를 가진 바이너리 표현으로 제한되게 하도록 설정된 컴퓨터 코드; 및
    컨볼루션 합 및 여러 개의 부분 컨볼루션 합들 중 상기 적어도 하나에 적어도 일부 기반하여 상기 적응 이미지 필터의 출력을 생성하도록 설정된 컴퓨터 코드를 포함함을 특징으로 하는 컴퓨터 프로그램 제품.
KR1020107010455A 2007-10-14 2008-10-13 높은 코딩 효율을 갖는 적응 이미지 필터의 고정 소수점 구현 KR20100074272A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/872,024 2007-10-14
US11/872,024 US20090097545A1 (en) 2007-10-14 2007-10-14 Fixed-Point Implementation of an Adaptive Image Filter with High Coding Efficiency
US1965908P 2008-01-08 2008-01-08
US61/019,659 2008-01-08

Publications (1)

Publication Number Publication Date
KR20100074272A true KR20100074272A (ko) 2010-07-01

Family

ID=40344364

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107010455A KR20100074272A (ko) 2007-10-14 2008-10-13 높은 코딩 효율을 갖는 적응 이미지 필터의 고정 소수점 구현

Country Status (6)

Country Link
EP (1) EP2208352A2 (ko)
KR (1) KR20100074272A (ko)
CN (1) CN101878648A (ko)
MX (1) MX2010004071A (ko)
RU (1) RU2010119176A (ko)
WO (1) WO2009050557A2 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102469310B (zh) * 2010-11-19 2015-02-04 深圳市云宙多媒体技术有限公司 一种亚像素插值方法及系统
AU2012303976B2 (en) * 2011-08-31 2015-08-13 Mediatek Inc. Method and apparatus for adaptive loop filter with constrained filter coefficients
SE538512C2 (sv) * 2014-11-26 2016-08-30 Kelicomp Ab Improved compression and encryption of a file
CA3092900A1 (en) 2018-03-09 2019-09-12 Huawei Technologies Co., Ltd. Method and apparatus for image filtering with adaptive multiplier coefficients

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0474226A3 (en) * 1990-09-06 1993-01-20 Matsushita Electric Industrial Co., Ltd. Digitial filter composing apparatus and digital filter composing method therefor
DE69422871T2 (de) * 1993-09-17 2000-08-17 Eastman Kodak Co Digitaler integrierter Abtastratenumwandlungsschaltkreis und Anwendung bei einer schnellen Grössenänderung eines Bildes
US5729483A (en) * 1995-11-14 1998-03-17 Advanced Micro Devices Implementation of a digital interpolation filter and method
GB2373661B (en) * 2001-03-23 2005-05-11 Advanced Risc Mach Ltd A data processing apparatus and method for performing an adaptive filter operation on an input data sample
TW200501565A (en) * 2003-05-15 2005-01-01 Neuro Solution Corp Digital filter and design method, design apparatus, and digital filter design program thereof

Also Published As

Publication number Publication date
WO2009050557A3 (en) 2009-06-11
RU2010119176A (ru) 2011-11-20
CN101878648A (zh) 2010-11-03
MX2010004071A (es) 2010-06-01
WO2009050557A2 (en) 2009-04-23
EP2208352A2 (en) 2010-07-21

Similar Documents

Publication Publication Date Title
US11805267B2 (en) Motion prediction in video coding
US8416861B2 (en) Fixed-point implementation of an adaptive image filter with high coding efficiency
US20090097545A1 (en) Fixed-Point Implementation of an Adaptive Image Filter with High Coding Efficiency
US8576097B2 (en) Coding using a mapping between a syntax element and a code word
WO2011095959A1 (en) An apparatus, a method and a computer program for video coding
WO2011083440A1 (en) An apparatus, a method and a computer program for video processing
JP5094960B2 (ja) 空間的に強化される変換符号化
US9432699B2 (en) Methods, apparatuses and computer programs for video coding
US20120243606A1 (en) Methods, apparatuses and computer programs for video coding
KR20100074272A (ko) 높은 코딩 효율을 갖는 적응 이미지 필터의 고정 소수점 구현
CN114531600A (zh) 变换单元、现场可编程门阵列、芯片、电子设备、片上系统

Legal Events

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