KR100871646B1 - 인트라-예측 방향에 기반한 h.264 공간 에러 은닉 방법 및장치 - Google Patents

인트라-예측 방향에 기반한 h.264 공간 에러 은닉 방법 및장치 Download PDF

Info

Publication number
KR100871646B1
KR100871646B1 KR1020077003530A KR20077003530A KR100871646B1 KR 100871646 B1 KR100871646 B1 KR 100871646B1 KR 1020077003530 A KR1020077003530 A KR 1020077003530A KR 20077003530 A KR20077003530 A KR 20077003530A KR 100871646 B1 KR100871646 B1 KR 100871646B1
Authority
KR
South Korea
Prior art keywords
macroblock
parameters
concealment
directional
hidden
Prior art date
Application number
KR1020077003530A
Other languages
English (en)
Other versions
KR20070040394A (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 콸콤 인코포레이티드
Publication of KR20070040394A publication Critical patent/KR20070040394A/ko
Application granted granted Critical
Publication of KR100871646B1 publication Critical patent/KR100871646B1/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/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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

인트라-예측 방향에 기반한 H.264 공간 에러 은닉 방법 및 장치{H.264 SPATIAL ERROR CONCEALMENT BASED ON THE INTRA-PREDICTION DIRECTION}
본 발명은 비디오 분배 시스템의 동작에 관련된 것으로서, 특히 비디오 분배 시스템들에서 사용하기 위한 공간 에러 은닉 방법 및 장치에 관한 것이다.
무선 통신 네트워크와 같은 데이터 네트워크들이 휴대용 장치들에 고품질 비디오 컨텐츠를 전달하는데 많이 사용되고 있다. 예를 들어, 휴대용 장치 사용자들은 이제 그들의 휴대용 장치들에서 이뤄질 수 있는 고 품질 비디오 클립의 형태로 뉴스, 스포츠, 오락, 및 다른 정보를 수신할 수 있다. 그러나 많은 수의 이동 장치들(가압자들)로 고품질 컨텐츠(비디오)를 분배하는 것은 복잡한 문제인데, 왜냐하면 이동 장치들은 일반적으로 신호 페이딩, 통화 중단 및 다른 열악한 전송 효과들에 영향을 쉽게 받는 상대적으로 느린 무선 통신 링크들을 사용하여 통신하기 때문이다. 따라서, 컨텐츠 제공자들이 채널 왜곡들을 극복하여 고품질 컨텐츠가 이동 장치에서 수신 및 실행될 수 있도록 하는 것이 중요하다.
일반적으로, 고품질 비디오 컨텐츠는 특정 프레임 레이트에서 이뤄지는 비디오 프레임 시퀀스를 포함한다. 일 기술에서, 각각의 프레임은 컬러 비디오를 제공하는 적, 녹, 청 정보를 나타내는 데이터를 포함한다. 전송 장치로부터 수신 재생 장치로 비디오 정보를 전송하기 위해서, 다양한 인코딩 기술들이 개발되었다. 일반적으로, 인코딩 기술은 비디오 압축을 제공하여 리던던트 데이터를 제거하고, 무선 채널 상에서 전송되는 비디오 데이터에 대한 에러 보정을 제공한다. 그러나 전송 기간 동안 압축된 비디오 데이터 중 임의의 부분의 손실(loss)은 디코더에서 재건되는 비디오의 품질에 영향을 미치게 된다.
전개되는 산업 표준들에 기반한 일 압축 기술은 일반적으로 "H.264" 비디오 압축으로 지칭된다. H.264 기술은 인코딩된 비디오 스트림을 디코딩하는 방법과 함께, 이러한 인코딩된 비디오 스트림의 신택스(syntax)를 정의한다. H.264 인코딩 프로세스의 일 실시예에서, 입력 비디오 프레임이 인코딩을 위해 제공된다. 프레임은 원(original) 이미지의 16 x 16 화소들에 대응하는 매크로블록들의 유닛(unit)들로 처리된다. 각각의 매크로블록은 인트라 또는 인터 모드로 코딩될 수 있다. 예측 매크로블록 I 는 재건되는 프레임에 기반하여 형성된다. 인트라 모드에서, I 는 이전에 인코딩, 디코딩, 및 재건된 현재 프레임 n의 샘플들로부터 형성된다. 예측 I 는 현재 매크로블록으로부터 감산되어 잔류 또는 차이 매크로블록 D를 생성한다. 이는 블록 변환을 사용하여 변환되고, 양자화되어 X(양자화 및 변환된 계수들 세트)를 생성한다. 이러한 계수들은 재-배열되고 엔트로피 인코딩된다. 매크로블록을 디코딩하는데 필요한 다른 정보와 함께, 엔트로피 인코딩 계수들은 수신 장치로 전송되는 압축된 비트스트림의 일부가 된다.
불행히도, 전송 처리기간 동안, 하나 이상의 매크로블록들에서의 에러들이 도입될 수 있다. 예를 들어, 신호 페이딩과 같이 하나 이상의 열악한 전송 효과들 은 하나 이상의 매크로블록들에서 데이터 손실을 야기한다. 결과적으로, 무선 채널과 같이 에러에 취약한 네트워크들에서 멀티미디어 컨텐츠를 전달하는 경우 에러 은닉이 매우 중요하게 된다. 에러 은닉 방식은 비디오 신호에서 존재하는 공간 및 시간 상관(correlation)을 이용한다. 에러에 직면하는 경우, 엔트로피 디코딩 기간 동안 복원이 이뤄져야 한다. 예를 들어, 패킷 에러가 발생하는 경우, 하나 이상의 매크로블록 또는 비디오 슬라이스들에 관련되는 데이터의 모두 또는 일부들이 손실될 수 있다. 코딩 모드를 제외한 모든 것이 손실되는 경우, 인트라 코딩 모드에 대한 공간 은닉 및 인터 코딩 모드에 대한 시간 은닉을 통해 복원이 이뤄진다.
수 개의 다양한 공간 은닉 기술들이 비디오 전송에서 하나 이상의 매크로블록을 손상시킨 에러로부터 복원하려는 시도로서 기존의 시스템들에서 사용되었다. 일 기술에서, 이웃 화소들의 가중 평균이 손실 화소들에 대한 값들을 결정하는데 사용된다. 불행히도, 이러한 간단한 기술은 원 비디오 프레임의 일부인 에지 구조들의 스미어링(smearing)을 초래한다. 따라서, 손실 매크로블록이 재생 장치에서 재생되는 경우, 결과적인 은닉 데이터는 만족스러운 에러 은닉을 제공하지 못한다.
공간 에러 은닉을 제공하기 위해 기존 시스템들에서 사용되는 다른 기술은 계산적으로 복잡한 필터링 및 스레쉬홀딩 연산들에 의존한다. 이러한 기술에서, 이웃 화소들의 경계가 손실 매크로블록 주변에서 정의된다. 이웃 화소들은 먼저 필터링되고, 그 결과는 스레쉬홀드 검출 처리를 겪는다. 이웃 화소들에서 검출되는 에지 구조들은 손실 매크로블록으로 확장되고 은닉 데이터를 생성하기 위한 기초로서 사용된다. 이러한 기술이 비록 가중 평균 기술보다 양호한 결과를 제공하 지만, 필터링 및 스레쉬홀딩 연산들이 계산적으로 복잡하고, 따라서 디코더에서 상당량의 자원들을 필요로 한다.
따라서, 비디오 전송 시스템들에서 사용하기 위한 공간 에러 은닉을 제공하도록 동작하는 시스템을 가지는 것이 바람직하다. 이러한 시스템은 단순한 가중 평균 기술에서 내재하는 스미어링 문제를 해결하고, 필터링 및 스레쉬홀딩 기술에서 필요한 것보다 계산적으로 덜 복잡한 시스템이어야 한다.
본 발명에서, 공간 에러 은닉 시스템은 비디오 전송 시스템에서 사용하기 위해 제공된다. 예를 들어, 본 시스템은 H.264 인코딩 및 디코딩 기술을 사용하는 무선 비디오 전송 시스템에서 사용하기에 적합하다.
일 실시예에서, 공간 에러 은닉을 위한 방법이 제공된다. 본 방법은 손상된 매크로블록을 검출하는 단계, 및 하나 이상의 이웃 매크로블록들과 관련된 코딩된 매크로블록 파라미터들을 획득하는 단계를 포함한다. 본 방법은 또한 코딩된 매크로블록 파라미터들에 기반하여 은닉 파라미터들을 생성하는 단계, 및 은닉 파라미터들을 비디오 디코딩 시스템에 삽입하는 단계를 포함한다.
일 실시예에서, 공간 에러 은닉을 위한 장치가 제공된다. 본 장치는 손상된 매크로블록을 검출하도록 구성된 논리부 및 하나 이상의 이웃 매크로블록들과 관련된 코딩된 매크로블록 파라미터들을 획득하도록 구성된 논리부를 포함한다. 본 장치는 또한 코딩된 매크로블록 파라미터들에 기반하여 은닉 파라미터들을 생성하도록 구성된 논리부 및 은닉 파라미터들을 비디오 디코딩 시스템에 삽입하도록 구성된 논리부를 포함한다.
일 실시예에서, 공간 에러 은닉을 위한 장치가 제공된다. 본 장치는 본 장치는 손상된 매크로블록을 검출하는 수단 및 하나 이상의 이웃 매크로블록들과 관련된 코딩된 매크로블록 파라미터들을 획득하는 수단을 포함한다. 본 장치는 또한 코딩된 매크로블록 파라미터들에 기반하여 은닉 파라미터들을 생성하는 수단 및 은닉 파라미터들을 비디오 디코딩 시스템에 삽입하는 수단을 포함한다.
일 실시예에서, 적어도 하나의 프로세서에 의해 실행되는 경우, 공간 에러 은닉을 제공하도록 동작하는 명령들을 포함하는 컴퓨터-판독가능 매체가 제공된다. 컴퓨터 판독가능 매체는 손상된 매크로블록을 검출하는 명령들, 및 하나 이상의 매크로블록들과 관련된 코딩된 매크로블록 파라미터들을 획득하는 명령들을 포함한다. 컴퓨터 판독가능 매체는 또한 코딩된 매크로블록 파라미터들에 기반하여 은닉 파라미터들을 생성하는 명령들 및 은닉 파라미터들을 비디오 디코딩 시스템에 삽입하는 명령들을 포함한다.
일 실시예에서, 공간 에러 은닉 방법을 수행하도록 구현된 적어도 하나의 프로세서가 제공된다. 이러한 방법은 손상된 매크로블록을 검출하는 단계, 및 하나 이상의 이웃 매크로블록들과 관련된 코딩된 매크로블록 파라미터들을 획득하는 단계를 포함한다. 이러한 방법은 또한 코딩된 매크로블록 파라미터들에 기반하여 은닉 파라미터들을 생성하는 단계, 및 은닉 파라미터들을 비디오 디코딩 시스템에 삽입하는 단계를 포함한다.
상기 실시예들의 다른 양상들은 하기 도면을 참조하여 아래에서 상세히 설명될 것이다.
여기서 제시되는 실시예들의 전술한 양상들 및 추가적인 양상들이 또한 하기 도면을 참조하여 아래에서 상세히 설명될 것이다.
도1은 수신 재생 장치로 전송을 위해 인코딩되는 비디오 프레임을 보여주는 도이다.
도2는 도1의 비디오 프레임에서 포함된 매크로블록의 상세한 다이아그램이다.
도3은 블록 및 그 블록을 에워싸는 이웃 화소들의 상세한 다이아그램이다.
도4는 블록의 방향 특성을 기술하는데 사용되는 9개의 방향 모드들(0-8)을 보여주는 방향 모드 다이아그램이다.
도5는 비디오 프레임을 인코딩하는데 사용되는 H.264 인코딩 처리의 다이아그램이다.
도6은 공간 에러 은닉 시스템의 일 실시예를 포함하는 네트워크에 대한 도이다.
도7은 공간 에러 은닉 시스템의 일 실시예에 대한 상세 다이아그램이다.
도8은 하나 이상의 공간 에러 은닉 시스템에서 사용하는데 적합한 공간 에러 은닉 논리부를 보여주는 도이다.
도9는 장치에 공간 에러 은닉을 제공하는 방법을 보여주는 도이다.
도10은 공간 에러 시스템의 일 실시예에서 사용하기 위한 매크로블록 파라미 터 버퍼를 보여주는 도이다.
도11은 공간 에러 은닉 시스템의 일 실시예에서 사용하기 위한 손실 맵을 보여주는 도이다.
도12는 은닉될 매크로블록 및 4개의 코절(causal) 이웃들을 보여주는 도이다.
도13은 인트라_4x4 예측(방향성) 모드를 결정하기 위해서 모든 16개의 인트라 4x4 블록들을 은닉 처리가 스캔하는 순서를 예시하는 매크로블록을 보여주는 도이다.
도14는 은닉될 매크로블록 및 은닉 처리에서 사용될 이웃 매크로블록들로부터의 10개의 블록들을 보여주는 도이다.
도15는 4x4 이웃 블록들 및 은닉될 4x4 블록들 사이의 관계를 설명하는 4개의 클리크(clique) 타입들(1-4)을 보여주는 도이다.
도16은 공간 에러 은닉 시스템의 일 실시예에서 결과적인 방향성 벡터를 양자화하는 처리를 예시하는 모드 다이아그램을 보여주는 도이다.
도17은 공간 에러 은닉 시스템의 일 실시예에서 대각 분류 일관성(diagonal classification consistency)에 대한 전파 룰 #1의 일 실시예를 보여주는 도이다.
도18은 공간 에러 은닉 시스템의 일 실시예에서 세대(generational) 차이들에 대한 전파 룰 #2의 일 실시예를 보여주는 도이다.
도19는 공간 에러 은닉 시스템의 일 실시예에서 이웃들을 한정하는 둔각에 대한 전파 룰 #3의 일 실시예를 보여주는 도이다.
도20은 공간 에러 은닉 시스템의 일 실시예에서 맨하튼 코너(Manhattan corner)들에 관련되는 중단 룰 #1의 일 실시예를 보여주는 도이다.
도21은 손실 색차신호(Cb 및 Cr)를 은닉하는 공간 은닉 알고리즘의 일 실시예의 동작을 보여주는 도이다.
도22는 인헨스드 공간 에러 은닉 시스템의 일 실시예에서 은닉될 휘도 및 색차(Cb 및 Cr) 매크로블록들의 다이아그램을 보여주는 도이다.
도23은 인헨스드 손실 맵의 일 실시예를 보여주는 도이다.
도24는 넌-코절(non-causal) 정보의 수신을 보여주기 위해 마크-업들을 포함하는 도23에 제시된 인헨스드 손실 맵의 일 실시예를 보여주는 도이다.
도25는 인헨스드 SEC를 제공하는 방법의 일 실시예를 보여주는 도이다.
도26은 인헨스드 SEC 특징들을 이용하는 것이 가능한 시기를 결정하는 방법의 일 실시예를 보여주는 도이다.
도27은 인헨스드 SEC 실시예에서 은닉 매크로블록의 하위 절반에서의 평균 밝기(즉, 휘도 채널), 수정을 달성하는 알고리즘을 제공하는 방법의 일 실시예를 보여주는 도이다.
도28은 도27에 제시된 방법에서 사용되는 변수들에 대한 정의들을 보여주는 도이다.
도29는 하나의 블록을 보여주고, 또한 이웃하는 4x4 블록들에 대한 인트라_4x4 예측들을 수행하는데 사용되는 7개의 화소들을 식별하는 도이다.
도30은 슬라이스 경계 바로 아래의 인트라_4x4 블록의 일 실시예를 보여주는 도이다.
도31은 인트라_4x4 블록 내의 화소들 및 이웃 화소들의 이름을 예시하는 도이다.
도32는 슬라이스 경계 아래에 위치하는 인트라_16x16 코딩된 매크로블록의 일 실시예를 보여주는 도이다.
도33은 슬라이스 경계 바로 아래의 색차 채널의 일 실시예를 보여주는 도이다.
본 발명에서, 수신된 비디오 전송에서 에러들을 은닉하기 위해서 동작하는 공간 에러 은닉 시스템이 제공된다. 예를 들어, 비디오 전송은 비디오 프레임들 시퀀스를 포함하며, 여기서 각각의 프레임은 복수의 매크로블록들을 포함한다. 한 그룹의 매크로블록들은 비디오 슬라이스를 한정하며, 하나의 프레임은 다수의 비디오 슬라이스들로 분할될 수 있다. 송신 장치에서의 인코딩 시스템은 H.264 인코딩 기술을 사용하여 매크로블록들을 인코딩한다. 그리고 나서, 인코딩된 매크로블록들은 전송 채널을 통해 수신 장치로 전송되고, 처리 과정에서, 하나 이상의 매크로블록들이 손실, 손상, 또는 사용 불가능하게 되어 상당한 왜곡들이 재건된 비디오 프레임에서 검출될 수 있다. 일 실시예에서, 공간 에러 은닉 시스템은 손상된 매크로블록들을 검출하고, 손상되지 않거나 수리되거나 또는 은닉된 이웃 매크로블록들과 관련된 방향성 구조들에 기반하여 은닉 데이터를 생성하도록 동작한다. 결과적으로, 손상된 매크로블록들은 효과적으로 은닉되어 양호한 비디오 프레임을 제공 하게 된다. 본 시스템은 특히 무선 네트워크 환경에 적합하지만, 통신 네트워크, 공중 네트워크(예를 들면, 인터넷), 사설 네트워크(가상 사설 네트워크(VPN)), 로컬 영역 네트워크, 광역 네트워크, 롱 홀 네트워크, 또는 임의의 데이터 네트워크 등을 포함하는 임의의 무선 또는 유선 네트워크 환경에서 사용될 수 있다. 본 시스템은 또한 임의의 비디오 재생 장치에서 사용하기에 적합하다.
비디오 프레임 인코딩
도1은 수신 재생 장치로 전송을 위해 인코딩될 비디오 프레임(100)을 보여주는 도이다. 예를 들어, 비디오 프레임(100)은 H.264 비디오 인코딩 기술을 사용하여 인코딩된다. 본 예에서 비디오 프레임(100)은 320x240 화소의 비디오 데이터를 포함하지만, 비디오 프레임은 임의의 수의 화소들을 포함할 수 있다. 일반적으로, 컬러 비디오에 있어서, 비디오 프레임(100)은 각 화소에 대해 휘도 및 색차(Y, Cr, Cb) 데이터를 포함한다. 명확화를 위해, 공간 에러 은닉 시스템의 실시예들은 먼저 손실된 휘도 데이터 은닉을 참조하여 먼저 기술될 것이다. 그러나 손실된 색차 데이터 은닉에 적용가능한 추가적인 실시예들이 또한 제공된다.
비디오 프레임(100)은 복수의 매크로블록들로 구성되고, 여기서 각각의 매크로블록은 16x16 화소의 데이터 어레이로 구성된다. 예를 들어, 매크로블록(102)은 16x16 화소의 비디오 데이터로 구성된다. 다음 섹션에서 설명되는 바와 같이, 비디오 프레임(100)의 매크로블록들은 H.264를 사용하여 인코딩되고, 인코딩된 매크로블록들과 관련된 다양한 코딩 파라미터들이 재생 장치로의 전송을 위해 비디오 스트림에 배치된다. 일 실시예에서, H.264는 인트라_16x16 인코딩으로 지칭되는 16x16 매크로블록들의 인코딩을 제공한다. 또 다른 실시예에서, H.264는 인트라_4x4 인코딩으로 지칭되는 4x4 화소 블록인 16x16 매크로블록들의 인코딩을 제공한다. 따라서, 비디오 데이터는 다양한 블록 사이즈들을 사용하여 인코딩될 수 있다: 그러나, 은닉 시스템의 하나의 이상의 실시예들은 사용되는 블록 사이즈에 관계없이 사용하기에 적합하다.
도2는 매크로블록(102)의 상세한 다이아그램이다. 매크로블록(102)은 16 블록 그룹으로 구성되고, 여기서 각각의 블록은 4x4 화소 데이터 어레이로 구성된다. 예를 들어, 블록(202)은 4x4 화소 데이터 어레이로 구성된다.
도3은 블록(202) 및 그 이웃 화소들(302)의 상세한 다이아그램이다. 예를 들어, H.264 인코딩 처리 과정 동안, 이웃 화소들(302)은 블록(202)을 기술하는 다양한 파라미터들을 생성하기 위해서 사용된다. 블록(202)은 화소들(p0-p15)로 구성되고, 이웃 화소들(302)은 블록(202) 화소들의 위치에 대응하는 기준 표시기들을 사용하여 식별된다.
도4는 블록(202)의 방향 특성을 기술하는데 사용되는 9개의 방향성 모드(0-8)(또는 표시기)를 보여주는 방향성 모드 다이아그램(400)이다. 예를 들어, 모드 0은 수직 방향성 모드를 기술하고, 모드 1은 수평 방향성 모드를 기술하며, 모드 2는 DC 특성을 기술한다. 방향성 모드 다이아그램(400)에서 제시된 모드들은 블록(202)에 대한 예측 파라미터를 생성하기 위해서 H.264 인코딩 처리에서 사용된다.
도5는 비디오 프레임을 인코딩하는데 사용되는 H.264 인코딩 처리의 다이아그램을 보여주는 도이다. 비디오 프레임의 각 블록을 인코딩하기 위해서 H.264 인 코딩 처리는 인트라_4x4 인코딩을 수행하는 것으로 가정한다: 예를 들어, 블록(202)은 도5에 제시된 인코딩 처리를 사용하여 인코딩될 수 있다. 일 실시예에서, 매크로블록이 수평, 수직, 또는 DC 방향성 모드를 가지고 인트라_16x16으로 코딩되면, 매크로블록을 포함하는 16개의 4x4 블록들에 인트라_16x16 모드에 대응하는 적절한 인트라_4x4 모드가 할당된다. 예를 들어, 인트라_16x16 모드가 DC 이면, 그 16개의 4x4 블록들에는 DC가 할당된다. 인트라_16x16 모드가 수평이면, 그 16개의 4x4 블록들에는 방향성 모드 1이 할당된다. 인트라_16x16 모드가 수직이면, 그 16개의 4x4 블록들에 도4에 제시된 바와 같이 방향성 모드 0이 할당된다.
H.264에서, 인트라 예측은 슬라이스 경계들 사이에서는 허용되지 않음을 주의해야 한다. 이는 방향성 모드들 중 일부를 금지하여 DC로서 선언되는 모드를 초래하게 된다. 이는 이웃 매크로블록들에서 모드 정보의 정확성에 영향을 미친다. 또한, 4x4 블록에 이러한 방식으로 DC 모드가 할당되는 경우, 잔류 에너지는 증가하고, 이는 넌-제로(non-zero) 계수들의 수 증가로 반영된다. 제안된 SEC 알고리즘에 대한 전파 룰들에서 모드 정보에 할당된 가중치들이 잔류 에너지에 의존하기 때문에, 제한된 인트라-예측으로 기인한 부정확성이 적절하게 처리된다.
인코딩 기간 동안, 예측 논리부(502)는 방향성 모드들(400)에 따라 이웃 화소들을 처리하여 각 방향성 모드에 대한 예측 블록(504)을 생성한다. 예를 들어, 예측 블록(504)은 선택된 방향성 모드에 따라 이웃 화소들(302)을 예측 블록(504)으로 확장함으로써 생성된다. 각 예측 블록(504)은 원 블록(202)으로부터 감산되어 9개의 "절대차 합"(SADi) 블록들(506)을 생성한다. 잔류 블록(508)은 9개의 SADi 블록들(506) 중 어떤 블록이 가장 작은 SAD 값(MINSAD), 가장 많은 제로 값, 을 가지는지에 기반하여, 또는 다른 선택 기준에 기반하여 9개의 SADi 블록들(506)로부터 결정된다. 잔류 블록(508)이 결정되면, 이는 변환 논리부(510)에 의해 변환되어 변환 계수들(512)을 생성한다. 예를 들어, 이산 여현 변환(DCT)과 같은, 비디오 압축을 위한 임의의 적합한 변환 알고리즘이 사용될 수 있다. 변환 계수들(512)은 블록(514)에서 양자화되어 양자화된 변환 계수들을 생성하고, 양자화된 변환 계수들은 선택된 잔류 블록(508)을 생성한 방향성 모드 값과 함께 전송 비트 스트림에 기록된다. 그리고 나서 전송 비트 스트림은 재생 장치로 데이터 네트워크상에서 전송하기 위해 처리된다. 잔류 블록(508)과 관련된 넌-제로 계수들의 수를 표시하는 표시기와 같은, 다른 파라미터들이 전송 비트 스트림에 포함될 수 있다.
전송 처리 동안, 하나 이상의 매크로블록들이 손실, 손상, 또는 신호 페이딩과 같은 열악한 전송 효과에 기인하여 사용 불능이 될 수 있다. 따라서, 하나 이상의 실시예들에서, 공간 에러 은닉 시스템은 재생 장치에서 동작하여 손상된 매크로블록들에 대한 은닉 데이터를 생성함으로써 수신된 비디오 정보의 양호한 재생을 제공한다.
도6은 공간 에러 은닉 시스템의 일 실시예를 포함하는 네트워크(600)를 보여주는 도이다. 네트워크(600)는 분배 서버(602), 데이터 네트워크(604), 및 무선 장치(606)를 포함한다. 분배 서버(602)는 통신 링크(608)를 통해 데이터 네트워크와 통신한다. 통신 링크(608)는 임의 타입의 유선 또는 무선 통신 링크를 포함한다.
데이터 네트워크(604)는 임의 타입의 유선 또는 무선 통신 네트워크를 포함한다. 데이터 네트워크(604)는 통신 링크(610)를 사용하여 장치(606)와 통신한다. 통신 링크(610)는 임의의 적합한 타입의 무선 통신 링크를 포함한다. 따라서, 분배 서버(602)는 데이터 네트워크(604) 및 통신 링크(608, 610)를 사용하여 장치(606)와 통신한다.
일 실시예에서, 분배 서버(602)는 데이터 네트워크(604)를 사용하여 장치(606)로 인코딩된 비디오 데이터를 전송하도록 동작한다. 예를 들어, 서버(602)는 소스 인코더(612) 및 채널 인코더(614)를 포함한다. 일 실시예에서, 소스 인코더(612)는 비디오 신호를 수신하고, H.264 인코딩 기술에 따라 비디오 신호의 매크로블록들을 인코딩한다. 그러나 실시예들은 다른 타입의 인코딩 기술들을 사용할 수도 있다. 채널 인코더(614)는 인코딩된 비디오 신호를 수신하고, 순방향 에러 보정과 같은 에러 보정을 통합하는 채널 인코딩된 비디오 신호를 생성하도록 동작한다. 결과적인 채널 인코딩된 비디오 신호는 경로(616)에 의해 제시된 바와 같이 분배 서버(602)로부터 장치(606)로 전송된다.
채널 인코딩된 비디오 신호는 채널 디코더(618)에 의해 장치(606)에서 수신된다. 채널 디코더(618)는 채널 인코딩된 비디오 신호를 디코딩하여, 전송 처리 동안 발생한 임의의 에러들을 검출 및 보정한다. 일 실시예에서, 채널 디코더(618)는 에러들을 검출할 수 있지만, 에러들의 심각성으로 인해 이들을 보정할 수는 없다. 예를 들어, 하나 이상의 매크로블록들이 신호 페이딩 또는 심각한 다른 전송 효과들로 인해 디코더가 이들을 보정할 수 없을 만큼 손실 또는 훼손될 수 있 다. 일 실시예에서, 채널 디코더(618)가 매크로블록 에러를 검출할 때, 채널 디코더는 보정 불가능한 매크로블록 에러가 수신되었음을 표시하는 에러 신호(620)를 출력한다.
채널 디코딩된 비디오 신호는 채널 디코더(618)로부터 출력되어 엔트로피 디코더(622)로 입력된다. 엔트로피 디코더(622)는 채널 디코딩된 비디오 신호로부터 방향성 모드 표시기들 및 계수들과 같은 매크로블록 파라미터들을 디코딩한다. 디코딩된 정보는 엔트로피 디코더(622)의 일부일 수 있는 매크로블록 파라미터 버퍼에 저장된다. 일 실시예에서, 디코딩된 매크로블록 정보는 스위치(624)(경로 628을 통해)로 입력되고, 파라미터 버퍼로부터의 정보는 공간 에러 은닉(SEC) 논리부(626)에 (경로 630을 통해) 액세스가능하다. 일 실시예에서, 엔트로피 디코더(622)는 또한 손상된 매크로블록들을 검출하고 에러 신호(620)를 출력하도록 동작한다.
일 실시예에서, SEC 논리부(626)는 전송 에러로 인해 손실된 매크로블록들에 대한 방향성 모드 정보 및 계수들을 포함하는 은닉 파라미터들을 생성하도록 동작한다. 예를 들어, SEC 논리부(626)는 에러 표시기(620)를 수신하고, 이에 응답하여 양호한(에러 없는) 매크로블록 이웃들과 관련된 매크로블록 방향성 정보 및 변환 계수들을 회수한다. SEC 논리부(626)는 이웃 정보를 사용하여 손실된 매크로블록에 대한 은닉 방향성 모드 정보 및 계수 파라미터들을 생성한다. SEC 논리부(626)의 보다 상세한 설명은 본 명세서의 다른 섹션에서 제공된다. SEC 논리부(626)는 손실된 매크로블록에 대해 생성된 방향성 모드 정보 및 계수 파라미터들을 경로(632)에 제시된 바와 같이 스위치(624)로 출력한다. 따라서, SEC 논리부(626)는 손실된 매크로블록에 대한 은닉 파라미터들을 디코딩 시스템으로 삽입한다.
스위치(624)는 스위치 출력에서 출력하기 위해 그 2개의 입력들 중 하나로부터 정보를 선택한다. 스위치의 동작은 에러 신호(620)에 의해 제어된다. 예를 들어, 일 실시예에서, 매크로블록 에러가 없는 경우, 에러 신호(620)는 스위치(624)가 엔트로피 디코더(622)로부터 수신된 방향성 모드 표시기 및 계수 정보를 출력하도록 제어한다. 매크로블록 에러가 검출되는 경우, 에러 신호(620)는 스위치(624)가 SEC 논리부(626)로부터 수신된 방향성 모드 표시기 및 계수 파라미터들을 출력하도록 제어한다. 따라서, 에러 신호(620)는 스위치(624)의 동작을 제어하여 엔트로피 디코더(622)로부터 정확하게 수신된 매크로블록 정보 또는 SEC 논리부(626)로부터 손상된 매크로블록에 대한 은닉 정보 중 하나를 전달하도록 한다. 스위치의 출력은 소스 디코더(634)로 입력된다.
소스 디코더(634)는 스위치(624)로부터 수신된 방향성 모드 표시기 및 계수 정보를 사용하여 전송된 비디오 데이터를 디코딩하여, 프레임 버퍼(636)에 저장되는 디코딩된 비디오 프레임을 생성한다. 디코딩된 프레임들은 보정 불가능한 에러들을 포함한 매크로블록들에 대한 SEC 논리부(626)에 의해 생성된 은닉 데이터를 포함한다. 프레임 버퍼(636)에 저장된 비디오 프레임들은 장치(608)에서 재생되어 SEC 논리부(626)에 의해 생성된 데이터는 손실 또는 손상된 매크로블록의 양호한 재생을 제공한다.
따라서, 일 실시예에서, 비디오 프레임에서 손실 또는 손상된 매크로블록들 에 대한 은닉 데이터를 생성하도록 동작하는 공간 에러 은닉 시스템이 제공된다. 일 실시예에서, 손상된 매크로블록에 대한 은닉 정보는 에러가 없는 또는 이전에 은닉된 이웃 매크로블록들과 관련된 변환 계수들 및 방향성 모드 정보로부터 생성된다. 결과적으로, 본 시스템은 H.264 인코딩 기술을 사용하는 기존의 비디오 전송 시스템에 쉽게 적용가능한데, 왜냐하면 재생 장치에 대한 수정만이 개선된 공간 에러 은닉을 획득하는데 요구되기 때문이다.
도7은 공간 에러 은닉 시스템(700)의 일 실시예에 대한 상세한 다이아그램이다. 예를 들어, 시스템(700)은 도6의 장치(606)에서 사용하기에 적합하다. 시스템(700)은 단지 하나의 가능한 구현일 뿐이고, 다른 구현들이 가능함을 주의하여야 한다.
설명을 위해, 공간 에러 은닉 시스템(700)이 무선 채널(704)을 통해 비디오 전송(702)을 수신하는 것으로 가정한다. 일 실시예에서, 비디오 전송(702)은 상술한 H.264 기술을 사용하여 인코딩된 비디오 정보를 포함하고, 따라서 비디오 프레임들 시퀀스를 포함하며, 여기서 각 프레임은 복수의 인코딩된 매크로블록들을 포함한다. 채널(704) 열화로 인해, 하나 이상의 매크로블록들이 보정 불가능한 에러들을 포함한다고 가정한다. 예를 들어, 하나 이상의 매크로블록들이 신호 페이딩 또는 다른 열악한 전송 환경을 경험하는 채널(704)로 인해 손실된다.
일 실시예에서, 공간 에러 은닉 시스템(700)은 채널(704)을 통해 비디오 전송(702)을 수신하도록 동작하는 물리 계층 논리부(706)를 포함한다. 물리 계층 논리부(706)는 수신된 비디오 전송(702)의 복조 및 디코딩을 수행한다. 예를 들어, 일 실시예에서, 물리 계층 논리부(706)는 수신된 비디오 전송(702)에 대한 터보 디코딩을 수행한다. 따라서, 실시예에서, 물리 계층 논리부(706)는 임의의 적합한 채널 디코딩을 수행할 수 있는 논리부를 포함한다.
물리 계층 논리부(706)의 출력은 스트림/MAC 계층 논리부(708)로 입력된다. 스트림/MAC 계층 논리부(708)는 임의의 타입의 적절할 에러 검출 및 보정을 수행한다. 예를 들어, 일 실시예에서, 스트림/MAC 계층 논리부(708)는 리드-솔로몬 소거 디코딩을 수행한다. 스트림/MAC 계층 논리부(708)는 보정 불가능한 및/또는 검출 불가능한 에러들 및 인-밴드 에러 마커들을 포함하는 디코딩된 비디오 데이터(710)의 비트 스트림을 출력한다. 스트림/MAC 계층 논리부(708)는 또한 하나 이상의 수신된 매크로블록들에서 에러가 발견되는 시기를 표시하는 에러 신호(712)를 출력한다. 일 실시예에서, 디코딩된 비디오 데이터(710)는 엔트로피 디코더(714)로 입력되고, 에러 신호(712)는 제1 및 제2 스위치(S1 및 S2), 그리고 SEC 논리부(726)로 입력된다.
엔트로피 디코더(714)는 3개의 출력들을 생성하기 위해서 입력 데이터 스트림을 디코딩한다. 제1 출력(716)은 입력 비디오 데이터 스트림(710)의 매크로블록과 관련된 블록들에 대한 양자화 파라미터들 및/또는 양자화된 계수들을 포함한다. 제1 출력(716)은 스위치(S2)의 제1 입력으로 입력된다. 제2 출력(718)은 입력 비디오 데이터 스트림(710)의 매크로블록들과 관련된 블록들에 대한 인트라 예측 방향성 모드들을 포함한다. 제2 출력(718)은 스위치(S1)의 제1 입력으로 입력된다. 제3 출력(720)은 매크로블록 파라미터 버퍼(724)로 입력되는 매크로블록 파라미터 들을 포함한다. 매크로블록 파라미터 버퍼(724)는 임의의 적절한 타입의 메모리 장치를 포함한다. 일 실시예에서, 매크로블록 파라미터들은 매크로블록 타입 표시기, 인트라 예측 모드 표시기, 계수, 및 각 매크로블록의 각 4x4 블록에 대한 넌-제로 계수들의 수를 표시하는 계수 표시기들을 포함한다. 일 실시예에서, 엔트로피 디코더(714)는 매크로블록 에러들을 검출하고 에러 신호(712)를 출력한다.
일 실시예에서, SEC 논리부(726)는 수신된 매크로블록에서 에러들을 은닉하는데 사용되는 은닉 데이터에 대한 계수 파라미터들 및 방향성 모드 정보를 생성한다. 예를 들어, 스트림/MAC 계층(708)으로부터의 에러 신호(712)는 SEC 논리부(726)로 입력된다. 에러 신호(712)는 비디오 전송(702)에 포함된 하나 이상의 매크로블록들에서 에러가 검출되었음을 표시한다. SEC 논리부(726)가 에러 신호(712)의 선택된 상태를 수신할 때, SEC 논리부(726)는 매크로블록 파라미터 버퍼(724)에 액세스하여 728에 제시된 바와 같이 매크로블록 파라미터들을 회수한다. SEC 논리부(728)는 회수된 파라미터들을 사용하여 2개의 출력들을 생성한다. 제1 출력은 스위치(S2)의 제2 입력으로 입력되는 은닉 양자화 파라미터(730)이다. SEC 논리부(726)의 제2 출력은 스위치(S1)의 제2 입력으로 입력되는 은닉 인트라 방향성 모드(732)이다. SEC 논리부(726)는 또한 722에 제시된 바와 같이, 매크로블록 파라미터 버퍼(724)로 다시 기록되는 은닉된 매크로블록에 대한 매크로블록 파라미터들을 생성한다. SEC 논리부(726)의 보다 상세한 내용은 본 명세서의 다른 섹션에서 제공된다.
일 실시예에서, 스위치(S1 및 S2)는 선택된 스위치 입력들에서 수신된 정보 를 스위치 출력들로 스위칭하도록 동작하는 임의의 적절한 스위칭 메커니즘을 포함한다. 예를 들어, 스위치(S2)는 2개의 입력들 및 하나의 출력을 포함한다. 제1 입력은 엔트로피 디코더(714)로부터 양자화 정보(716)를 수신하고, 제2 입력은 SEC 논리부(726)로부터 은닉 양자화 정보(730)를 수신한다. 스위치(S2)는 또한 스위치(S2)의 동작을 제어하도록 동작하는 에러 신호(712)를 수신한다. 일 실시예에서, 스트림/MAC 계층(708)이 수신된 비디오 전송(702)에서 매크로블록 에러들을 발견하지 못하면, 스위치(S2)가 그 스위칭 출력에서 출력될 그 제1 입력 정보를 선택하도록 제어하는 제1 상태를 갖는 에러 신호(712)가 출력된다. 스트림/MAC 계층(708)이 수신된 비디오 전송(702)에서 매크로블록 에러들을 발견하면, 스위치(S2)가 그 스위칭 출력에서 출력될 그 제2 입력 정보를 선택하도록 제어하는 제2 상태를 갖는 에러 신호(712)가 출력된다. 스위치(S2)의 출력은 리스케일링(rescaling) 블록(732)으로 입력된다.
스위치(S1)의 동작은 스위치(S2)의 동작과 유사하다. 예를 들어, 스위치(S1)는 2개의 입력들 및 하나의 출력을 포함한다. 제1 입력은 엔트로피 디코더(714)로부터 인트라 방향성 모드들(718)을 수신하고, 제2 입력은 SEC 논리부(726)로부터 은닉 인트라 방향성 모드들(732)을 수신한다. 스위치(S1)는 또한 그 동작을 제어하도록 동작하는 에러 신호(712)를 수신한다. 일 실시예에서, 스트림/MAC 계층(708)이 수신된 비디오 전송(702)에서 매크로블록 에러들을 발견하지 못하면, 스위치(S1)가 그 스위치 출력에서 출력될 그 제1 입력 정보를 선택하도록 제어하는 제1 상태를 갖는 에러 신호(712)가 출력된다. 스트림/MAC 계층(708)이 수신된 비 디오 전송(702)에서 매크로블록 에러를 발견하면, 스위치(S1)가 그 스위치 출력에서 출력될 그 제2 입력 정보를 선택하도록 제어하는 제2 상태를 갖는 에러 신호(712)가 출력된다. 스위치(S1)의 출력은 인트라 예측 블록(734)으로 입력된다.
일 실시예에서, 리스케일링 블록(732)은 비디오 신호 블록에 대한 양자화 파라미터들을 수신하고, 역변환 블록(736)으로 입력되는 스케일링된 버젼을 생성하도록 동작한다.
역변환 블록(736)은 비디오 블록 신호에 대한 수신된 양자화 파라미터들을 처리하여 합산 기능부(738)로 입력되는 역변환을 생성한다.
인트라 예측 블록(734)은 스위치(S1)의 출력으로부터 인트라 방향성 모드들 및 디코딩된 프레임 데이터 버퍼(740)로부터 이웃 화소 값들을 수신하여, 합산 기능부(738)로 입력되는 예측 블록을 생성하도록 동작한다.
합산 기능부(738)는 역변환 블록(738)의 출력 및 예측 블록(734)의 출력을 합산하여, 디코딩 또는 에러 은닉된 화소 값들을 나타내는 재건 블록(742)을 형성하도록 동작한다. 재건 블록(742)은 디코딩된 프레임 데이터 버퍼(740)로 입력되고, 디코딩된 프레임 데이터 버퍼(740)는 그 프레임에 대한 디코딩된 화소 데이터를 저장하고, SEC 논리부(726)의 동작의 결과로서 생성된 임의의 은닉 데이터를 포함한다.
따라서, 실시예들에서, 비디오 프레임에서 매크로블록 에러들을 검출하고, 에러 없는 매크로블록들 및/또는 이전에 은닉된 매크로블록들과 관련된 코딩된 매크로블록 파라미터들에 기반하여 은닉 데이터를 생성하도록 동작하는 공간 에러 은 닉 시스템이 제공된다.
도8은 공간 에러 은닉 시스템 실시예들에서 사용하기에 적합한 SEC 논리부(800)의 일 실시예를 보여주는 도이다. 예를 들어, SEC 논리부(800)는 수신된 비디오 전송에 대한 공간 에러 은닉을 제공하기 위해 도7에 제시된 SEC 논리부(726)로 사용하기에 적합하다.
SEC 논리부(800)는 처리 논리부(802), 매크로블록 에러 검출 논리부(804), 및 매크로블록 버퍼 인터페이스 논리부(806)를 포함하고, 이들은 모두 내부 데이터 버스(808)에 연결된다. SEC 논리부(800)는 또한 매크로블록 계수 출력 논리부(810) 및 매크로블록 방향성 모드 출력 논리부(812)를 포함하고, 이들 역시 내부 데이터 버스(808)에 연결된다.
실시예들에서, 처리 논리부(802)는 CPU, 프로세서, 게이트 어레이, 하드웨어 논리부, 메모리 엘리먼트, 가상 머신, 소프트웨어, 및/또는 하드웨어 및 소프트웨어의 임의의 조합을 포함한다. 따라서, 처리 논리부(802)는 일반적으로 기계-판독가능한 명령들을 실행하고, 내부 데이터 버스(808)를 통해 SEC 논리부(800)의 하나 이상의 다른 기능 엘리먼트들을 제어하는 논리부를 포함한다.
일 실시예에서, 처리 논리부(802)는 매크로블록 파라미터 버퍼로부터 코딩된 매크로블록 파라미터들을 처리하여, 하나 이상의 매크로블록들에서 에러들을 은닉하는데 사용되는 은닉 파라미터들을 생성하도록 동작한다. 일 실시예에서, 처리 논리부(802)는 은닉 파라미터들을 생성하는데 사용되는 계수 정보 및 방향성 모드 정보를 생성하기 위해서 매크로블록 파라미터 버퍼에 저장되는 에러 없는 또는 이 전에 은닉된 매크로블록들로부터 코딩된 매크로블록 파라미터들을 사용한다.
매크로블록 버퍼 인터페이스 논리부(806)는 SEC 논리부(800)가 매크로블록 파라미터 버퍼에 인터페이스하도록 하기 위한 하드웨어 및/또는 소프트웨어를 포함한다. 예를 들어, 매크로블록 파라미터 버퍼는 도7에 제시된 매크로블록 파라미터 버퍼(724)이다. 일 실시예에서, 인터페이스 논리부(806)는 링크(814)를 통해 매크로블록 파라미터 버퍼로부터 코딩된 매크로블록 파라미터들을 수신하도록 구성되는 논리부를 포함한다. 인터페이스 논리부(806)는 또한 링크(814)를 통해 매크로블록 파라미터 버퍼로 은닉된 매크로블록과 관련된 코딩된 매크로블록 파라미터들을 전송하도록 구성되는 논리부를 포함한다. 링크(814)는 임의의 적절한 통신 기술을 포함한다.
매크로블록 에러 검출 논리부(804)는 SEC 논리부(800)가 매크로블록 에러들이 검출된 때를 표시하는 표시기 또는 에러 신호를 수신할 수 있도록 하는 하드웨어 및/또는 소프트웨어를 포함한다. 예를 들어, 검출 논리부(804)는 임의의 적절한 기술을 포함하는 링크(816)를 통해 에러 신호를 수신하도록 구성되는 논리부를 포함한다. 예를 들어, 에러 신호는 도7에 제시된 에러 신호(712)일 수 있다.
매크로블록 계수 출력 논리부(810)는 비디오 프레임에서 은닉 데이터를 생성하는데 사용될 매크로블록 계수들을 SEC 논리부(800)가 출력하도록 동작하는 하드웨어 및/또는 소프트웨어를 포함한다. 예를 들어, 계수 정보는 처리 논리부(802)에 의해 생성된다. 일 실시예에서, 매크로블록 계수 출력 논리부(810)는 도7에 제시된 스위치(S1)와 같은 스위칭 논리부로 매크로블록 계수들을 출력하도록 구성되 는 논리부를 포함한다.
매크로블록 방향성 모드 출력 논리부(812)는 비디오 프레임에서 은닉 데이터를 생성하는데 사용될 매크로블록 방향성 모드 값들을 SEC 논리부(800)가 출력하도록 동작하는 하드웨어 및/또는 소프트웨어를 포함한다. 일 실시예에서, 매크로블록 방향성 모드 출력 논리부(810)는 도7에 제시된 스위치(S2)와 같은 스위칭 논리부로 매크로블록 방향성 모드 값들을 출력하도록 구성되는 논리부를 포함한다.
공간 에러 은닉 시스템의 실시예들에서, SEC 논리부(800)는 다름 기능들 중 하나 이상을 수행한다.
a. 하나 이상의 사용 불가능한 매크로블록들이 수신되었음을 표시하는 에러 표시기의 수신.
b. 매크로블록 파라미터 버퍼로부터 양호한(에러 없는 또는 이전에 은닉된) 이웃 매크로블록들과 관련된 코딩된 매크로블록 파라미터들의 획득.
c. 사용 불가능한 매크로블록들에 대한 계수 데이터 및 매크로블록 방향성 모드 값들 생성.
d. 은닉 데이터가 생성되고, 디코딩된 비디오 프레임으로 삽입되는 디코딩 시스템으로 방향성 모드 값들 및 계수 데이터 출력.
e. 매크로블록 파라미터 버퍼로 다시 은닉된 매크로블록에 대한 코딩된 매크로블록 파라미터 저장.
일 실시예에서, SEC 논리부(800)는 컴퓨터 판독가능 매체에 저장된 프로그램 명령들을 포함하고, 예를 들어, 처리 논리부(802)와 같은 적어도 하나의 프로세서 에 의해 실행되는 경우, 이러한 명령들은 여기서 제시된 공간 에러 은닉 시스템의 기능들을 제공한다. 예를 들어, 명령들은 플로피 디스크, CDROM, 메모리 카드, 플래쉬 메모리 장치, RAM, ROM, 또는 다른 메모리 장치와 같은 컴퓨터 판독가능 매체로부터 SEC 논리부(800)로 로딩될 수 있다. 또 다른 실시예에서, 이러한 명령들은 SEC 논리부(800)와 인터페이스하는 외부 장치 또는 네트워크 자원으로부터 SEC 논리부(800) 내로 다운로드될 수 있다. 처리 논리부(802)에 의해 실행되는 경우, 이러한 명령들은 여기서 제시된 공간 에러 은닉 시스템 실시예들을 제공한다. SEC 논리부(800)는 단지 하나의 가능한 구현일 뿐이며, 다른 다양한 구현들이 있을 수 있다.
도9는 공간 에러 은닉의 일 실시예를 제공하는 방법(900)을 보여주는 도이다. 명확화를 위해서, 상기 방법(900)은 도7에 제시된 공간 은닉 시스템(700)을 참조하여 설명된다. 상기 방법은 기본적인 SEC 실시예를 기술하지만, 아래에서 제시되는 다른 방법들 및 장치들은 인헨스드(enhanced) SEC 실시예들을 기술한다. 예를 들어, 기본적인 SEC 실시예들은 코절(causal) 이웃들에 기반한 에러 은닉을 제공하지만, 인헨스드 SEC 실시예들은 넌-코절 이웃들을 이용하여 에러 은닉을 제공한다. 상기 방법의 기능들이 순차적인 방식으로 제시 및 설명되지만, 하나 이상의 기능들이 재배열 및/또는 동시에 수행될 수 있다.
블록(902)에서, 비디오 전송이 장치에서 수신된다. 예를 들어, 일 실시예에서, 비디오 전송은 H.264 기술을 사용하여 코딩된 비디오 데이터 프레임들을 포함한다. 일 실시예에서, 비디오 전송은 신호 페이딩과 같은 열악한 환경을 경험하는 전송 채널 상에서 이뤄지고, 따라서 전송에 포함된 하나 이상의 매크로블록들이 손실, 훼손, 또는 사용 불가능하게 된다.
블록(904)에서, 수신된 비디오 전송은 채널 디코딩되고, 에러 검출 및 보정을 경험한다. 예를 들어, 비디오 전송은 물리 계층 논리부(706) 및 스트림/MAC 계층 논리부(708)에 의해 처리되어 채널 디코딩 및 에러 검출의 기능들을 수행한다.
블록(906)에서, 채널 디코딩된 비디오 신호는 엔트로피 디코딩되어 코딩된 매크로블록 파라미터들을 획득한다. 예를 들어, 일 실시예에서, 엔트로피 코딩은 양자화된 계수들 및 그들의 위치들의 가변 길이 무손실 코딩을 포함한다. 일 실시예에서, 도7에 제시된 엔트로피 디코더(714)는 엔트로피 디코딩을 수행한다. 일 실시예에서, 엔트로피 디코딩은 또한 하나 이상의 매크로블록 에러들을 검출한다.
블록(908)에서, 엔트로피 디코딩으로부터 결정된 코딩된 매크로블록 파라미터들은 매크로블록 파라미터 버퍼에 저장된다. 예를 들어, 매크로블록 파라미터들을 도7에 제시된 버퍼(724)에 저장된다. 매크로블록 파라미터들은 방향성 모드 값들, 변환 계수들, 및 특정 블록에서 넌-제로 계수들의 수를 표시하는 넌-제로 표시기를 포함한다. 실시예들에서, 매크로블록 파라미터들은 비디오 프레임과 관련된 휘도(luma) 및/또는 색차(chroma) 데이터 모두를 기술한다.
블록(910)에서, 수신된 비디오 전송에서 하나 이상의 매크로블록들이 사용 불가능한지 여부를 결정하기 위한 테스트가 수행된다. 예를 들어, 수신된 비디오 스트림에서 하나 이상의 매크로블록과 관련된 데이터가 전송에서 손실되거나, 또는 보정 불가능한 에러들을 포함한다. 일 실시예에서, 매크로블록 에러들은 블록 (904)에서 검출된다. 또 다른 실시예에서, 매크로블록 에러들은 블록(906)에서 검출된다. 수신된 매크로블록에서 에러가 검출되지 않으면, 상기 방법은 블록(914)으로 진행한다. 에러들이 하나 이상의 매크로블록에서 검출되면, 상기 방법은 블록(912)으로 진행한다.
블록(912)에서, 은닉 파라미터들이 에러 없는 및/또는 이전에 은닉된 이웃 매크로블록들로부터 생성된다. 예를 들어, 은닉 파라미터들은 은닉 데이터를 생성하는데 사용될 수 있는 방향성 모드 값들 및 변환 계수들을 포함한다. 일 실시예에서, 은닉 파라미터들은 도8에 제시된 SEC 논리부(800)에 의해 생성된다. SEC 논리부(800)는 사용 불가능한 매크로블록을 식별하는 에러 신호를 수신하도록 동작한다. 그리고 나서 SEC 논리부(800)는 양호한 이웃 매크로블록과 관련된 코딩된 매크로블록 파라미터들을 회수한다. 매크로블록 파라미터들은 버퍼(724)와 같은 매크로블록 파라미터 버퍼로부터 회수된다. 이웃 매크로블록들은 SEC 논리부(800)에 의해 이전에 은닉되었거나, 또는 정확하게(에러 없이) 수신되었다. 은닉 파라미터들이 생성되면, 이들은 다시 매크로블록 파라미터 버퍼에 기록된다. 일 실시예에서, SEC 논리부(800)에 의해 생성된 변환 계수들은 올-제로들을 포함한다. SEC 논리부(800)의 보다 상세한 설명은 본 명세서의 다른 섹션에서 제공된다.
블록(914)에서, 매크로블록과 관련된 변환 계수들이 리스케일링된다. 예를 들어, 리스케일링은 블록 사이즈들 사이의 변경을 허용하여 정확한 예측을 제공한다. 일 실시예에서, 계수들은 수신된 양호한 매크로블록들로부터 유도된다. 또 다른 실시예에서, 계수들은 은닉 데이터에 대한 계수들을 나타내고 블록(912)에서 설명된 SEC 논리부(800)에 의해 생성된다. 리스케일링은 도7에 제시된 리스케일링 논리부(732)에 의해 수행된다.
블록(916)에서, 역변환이 리스케일링된 계수들에 대해 수행된다. 예를 들어, 역변환은 도7에 제시된 역변환 논리부(736)에 의해 수행된다.
블록(918)에서, 인트라_4x4 예측 블록이 방향성 모드 값 및 이전에 디코딩된 프레임 데이터를 사용하여 생성된다. 예를 들어, 도7에 제시된 스위치(S1)으로부터 출력된 방향성 모드 값이 이전에 디코딩된 프레임 데이터와 함께 사용되어 예측 블록을 생성한다.
블록(920)에서, 재건 블록이 생성된다. 예를 들어, 블록(916)에서 생성된 변환 계수들이 블록(918)에서 생성된 예측 블록과 결합되어 재건 블록을 생성한다. 예를 들어, 도7에 제시된 합산 논리부(738)는 재건 블록을 생성하도록 동작한다.
블록(922)에서, 재건 블록은 디코딩된 프레임 버퍼에 기록된다. 예를 들어, 재건 블록은 도7에 제시된 디코딩된 프레임 버퍼(740)에 기록된다.
따라서, 상기 방법은 재생 장치에서 수신된 손상된 매크로블록을 은닉하기 위해서 공간 에러 은닉을 제공하도록 동작한다. 상기 방법은 하나의 가능한 구현일 뿐이며, 상기 기능들의 변경, 조합, 삭제, 또는 재배열, 또는 다른 기능의 추가를 포함하는 다양한 변형들이 가능함을 주의하여야 한다.
도10은 공간 에러 은닉 시스템의 일 실시예에서 사용하기 위한 매크로블록 파라미터 버퍼의 일 실시예를 보여주는 도이다. 예를 들어, 버퍼(1000)는 도7에 제시된 버퍼(724)로 사용하기에 적합하다. 파라미터 버퍼(1000)는 수신된 비디오 전송과 관련된 매크로블록들을 기술하는 코딩된 파라미터 정보를 포함한다. 예를 들어, 버퍼(1000)에 저장된 정보는 매크로블록 및, DC 값, 모드, 방향성 정보, 넌-제로 표시기, 및 다른 적절한 파라미터들을 포함하는 휘도 및/또는 색차 파라미터와 같은 매크로블록 파라미터들을 식별한다.
은닉 알고리즘
공간 에러 은닉 시스템의 실시예들에서, 손실 또는 손상 매크로블록들을 은닉하기 위한 데이터를 생성하는 알고리즘이 수행된다. 일 실시예에서, 이러한 알고리즘은 공간 에러 은닉 시스템이 비디오 신호의 로컬 방향성 특성들에 적응하고, 이를 보존하여 강화된(enhanced) 성능을 달성하게 한다. 이러한 알고리즘 및 그 동작에 대한 상세한 내용은 아래에서 제공된다.
본 시스템은 인트라_16x16 및 인트라_4x4 예측 모드 모두와 함께 동작하여 (양호한) 이웃 매크로블록들 및 그들의 4x4 블록들을 사용하여 손상된 매크로블록에서 비디오 신호의 로컬 방향성 구조를 추론한다. 결과적으로, 에러/손실 매크로블록 대신에, 인트라_4x4 코딩된 은닉 매크로블록들이 합성되고, 이를 위해 4x4 블록 인트라 예측 모드들이 가용한 이웃 정보에 기반하여 코히어런트하게 유도된다.
인트라_4x4 은닉 매크로블록들은 잔류(즉, 계수) 데이터 없이 합성된다. 그러나 합성된 은닉 매크로블록들을 강화(enhance)하기 위한 다른 실시예들에서 잔류 데이터를 제공하는 것 역시 가능하다. 이러한 특징은 가용한 넌-코절 이웃들로부터 보정(corrective) 휘도 및 컬러 정보를 통합하는데 특히 유용하다.
합성된 은닉 매크로블록들이 결정되면, 이들은 재생 장치의 정규 디코딩 시 스템 또는 논리부로 단순히 전달된다. 이와 같이, 은닉을 위한 구현은 간소화되고 사후-처리 방식이 아니라 디코딩 처리에 보다 유사하다. 이는 타겟화된 재생 플랫폼에 대한 시스템의 간단한고 효율적인 포팅(porting)을 제공한다. 손실 영역 경계들을 마킹하는 매크로블록 경계들에 걸쳐 실행되는 강력한 디-블록킹 필터링은 은닉 알고리즘을 완성한다.
특히 은닉 매크로블록 및 그들의 4x4 블록들이 합성되는 순서와 관련하여, 기본 알고리즘의 다양한 변형이 가능함을 주의하여야 한다. 그러나 다음 설명들은 타겟화된 하드웨어/펌웨어/소프트웨어 플랫폼에 대한 구조 및/또는 제한들을 수용 및 매칭하기 위한 기능들 및 구현들을 반영한다.
알고리즘에 대한 입력들
실시예들에서, 공간 은닉 알고리즘은 다음과 같이 2가지 타입의 입력들을 이용한다.
손실 맵
손실 맵은 상술한 매크로블록 에러 검출 처리에 의해 생성되는 매크로블록 이진 맵 당 1 비트로 구성된다. 에러에 의해 손상되거나 또는 재동기화 처리 동안 스킵/미싱된 모든 매크로블록들, 따라서 은닉될 필요가 있는 모든 매크로블록들은 '1'로 마킹된다. 나머지 매크로블록들은 '0'으로 마킹된다.
도11은 공간 에러 은닉 시스템의 일 실시예에서 사용하기 위한 손실 맵(1100)의 일 실시예를 보여주는 도이다. 손실 맵(1100)은 비디오 프레임과 관련된 매크로블록들의 맵을 보여주며, 여기서 양호한 매크로블록들은 '0'으로 마킹되고, 손상 또는 손실 매크로블록들은 '1'로 마킹된다. 손실 맵(1100)은 또한 은닉 데이터를 생성하기 위한 공간 에러 은닉 시스템의 일 실시예에서 매크로블록이 처리되는 순서를 보여주는 방향성 표시기(1102)를 보여준다.
양호한 이웃 정보
다음은 공간 에러 은닉 시스템의 일 실시예에서 은닉 데이터를 생성하기 위한 은닉 알고리즘에서 사용되는 양호한 이웃들로부터의 정보에 대한 3가지 클래스들을 식별한다.
a. 매크로블록 코딩 타입(인트라_16x16 또는 인트라_4x4 중 하나)
b. 매크로블록 코딩 타입이 인트라_16x16 이면, 인트라_16x16 예측 (방향성) 모드가 사용됨. 매크로블록 코딩 타입이 인트라_4x4 이면, 16개의 인트라_4x4 예측 (방향성) 모드들이 사용됨.
c. 각각의 4x4 블록에 대해 (넌-제로) 계수들의 수를 표시하는 넌제로 표시기.
이러한 정보들은 예를 들면 도7에 제시된 버퍼(724)와 같은 매크로블록 파라미터 버퍼에 저장된 데이터 구조들을 통해 액세스된다.
매크로블록 레벨에서 처리하는 순서
일 실시예에서, 가용한 코절 이웃들로부터의 정보만이 사용된다. 그러나 다른 실시예들에서, 넌-코절 이웃들로부터의 정보를 통합하는 것도 가능하다. 따라서, 이용되는 이웃들의 코절 구조에 따라, 은닉 매크로블록 처리/합성 순서는 도11에 제시된 바와 같이 래스터 스캔 패턴(좌에서 우로, 위에서 아래로)을 따른다. 특정 손실 맵에 의해 발동되면(invoked), 공간 은닉 처리는 래스터 스캔 순서로 한번에 하나의 매크로블록에서 손실 맵 스캐닝을 시작하고, 제시된 순서로 한번에 하나씩 지정된 매크로블록들에 대한 은닉 데이터를 생성한다.
매크로블록 레벨에서 이용되는 이웃들
도12는 은닉될 매크로블록(1202) 및 4개의 코절 이웃들(A,B,C,D)을 보여주는 도이다. 이웃의 이용가능성에 대한 하나의 조건은 "가용성(availability)"이고, 여기서 가용성은 프레임 경계들에 대한 은닉 매크로블록의 위치에 의해 영향을 받고, 이에 따라 정의된다. 이웃 매크로블록 타입들 또는 슬라이스 조합(association)은 중요하지 않다. 따라서, 예를 들어, 프레임 경계들을 따라 위치하지 않는 은닉 매크로블록들은 모두 4개의 가용한 이웃 매크로블록들을 가지며, 프레임의 좌측 경계에 위치하는 매크로블록은 이웃 A 및 D를 가용한 이웃으로 갖지 않는다.
도13은 각 블록에 대한 인트라_4x4 예측 (방향성) 모드들을 결정하기 위해서 각 은닉 매크로블록의 모든 16개의 인트라_4x4 블록들을 은닉 처리가 스캔하는 순서를 보여준다. 예를 들어, 매크로블록(1300)은 각 블록과 관련된 순서 표시기를 보여준다.
4x4 블록 레벨에서 이용되는 이웃들
도14는 은닉될 매크로블록(1402) 및 은닉 처리에서 사용될 이웃 매크로블록들로부터의 10개의 블록들(1404)을 보여준다. 공간 에러 은닉 알고리즘은 가용한 이웃들로부터 추론된 방향성 특성들을 은닉될 매크로블록으로 전파함으로써 비디오 신호의 로컬 방향성 구조를 보존한다. 이러한 추론 및 전파는 4x4 블록들의 입도 (granularity)에서 일어난다. 따라서, 은닉될 각각의 4x4 블록에 있어서, 영향을 미치는 이웃들의 집합이 한정될 수 있다.
매크로블록 레벨에서 외부 이웃들의 일부인 영향을 미치는 4x4 이웃들의 경우에, 가용성 속성은 그들의 부모(parents)로부터 물려받는다. 예를 들어, 그 부모가 위에서 정의한 바와 같이 가용하면, 4x4 블록 및 그 관련된 정보는 가용하다.
은닉될 매크로블록의 일부인 영향을 미치는 4x4 이웃들의 경우, 가용성은 도13에서 제시된 매크로블록의 처리 순서와 관련하여 정의된다. 따라서, 4x4 블록 스캔 순서에서 이미 처리되었다면, 영향을 미치는 잠재적인 4x4 이웃은 가용하고, 그렇지 않으면, 가용하지 않다.
방향성 정보 전파 및 인트라 4x4 예측 모드 결정
은닉 매크로블록 합성의 제1 단계는 외부의 영향을 미치는 10개의 4x4 이웃들(4개의 상이한 매크로블록 이웃들로부터 유도됨)과 관련된 인트라 예측 모드 정보 및 매크로블록 타입을 대응하는 적절한 인트라_4x4 예측 모드들로 매핑하는 것이다.
일 실시예에서, 외부의 영향을 미치는 4x4 이웃이 인트라_4x4 코딩된 매크로블록에 속하는 경우, 이러한 매핑처리는 간단하다(식별자 매핑). 모든 다른 (부모) 매크로블록 타입들에 있어서, 이러한 매핑 룰들은 다음과 같이 정의된다.
부모 매크로블록(MB) 타입
및 예측 모드 블록들에 대한 대체 4x4 예측
인트라_16x16, 수직 부모=B이면, 모드 0: 아니면, 모드 2(DC)
인트라_16x16, 수평 부모=A이면, 모드 1: 아니면, 모드 2(DC)
인트라_16x16, DC 모드 2(DC)
인트라_16x16, 평면 모드 2(DC)
모든 다른 MB 타입들 모드 2(DC)
(인트라_4x4를 배제함)
일 실시예에서, 매크로블록 경계들에 걸친 은닉 결과의 평활도(smoothness)를 증가시키는 것이 가능하고, 따라서 인트라_4x4 및 인트라_16x16 타입들을 제외한 모든 외부 부모 매크로블록 타입의 매핑이 부모 매크로블록 위치의 함수가 되도록 함으로써 주관적인 품질을 개선할 수 있다. 예를 들어, 위의 최종 엔트리에서의 대체 룰을 다음과 같이 변경한다:
부모=B이면 모드 0 ; 부모=A이면 모드 1; 및 그렇지 않으면 모드 2(DC).
클리크 (clique)
도15는 은닉될 4x4 블록 및 4x4 이웃 블록들 사이의 관계를 설명하는 4개의 클리크 타입들(1-4)의 일 실시예를 보여주는 도이다. 예를 들어, 도12에 제시된 바와 같이, 4x4 블록(1202)과 함께 4개의 영향을 미치는 4x4 이웃들(A,B,C,D) 각각은 특정 클리크 타입을 정의하는데 사용될 수 있다. 클리크들은 중요한데, 왜냐하면 그들의 구조들은 영향을 미치는 이웃 블록들로부터 은닉될 4x4 블록으로 방향성 정보를 전파하는데 직접 영향을 미치기 때문이다.
클리크 타입 1(1502)이 제시된다. 이러한 클리크에서 영향을 미치는 4x4 이웃(1504)은 1506에서 제시된 9개의 가능성 중에서 하나에 의해 주어지는 인트라_4x4 예측 모드 분류를 갖는다. 8개의 가능한 예측 모드들(즉, 0,1,3,4,5,6,7,8) 중 하나로 분류되는 영향을 미치는 4x4 이웃(1504)은 식별된 방향성 예측 모드와 평행하게 움직이는 방향성 구조(즉, 에지 또는 그레이팅(grating))의 일부 형태가 존재함을 의미한다. 모드 2는 방향성 구조를 의미하지 않으며, 따라서 은닉될 4x4 블록의 방향성 구조에 영향을 미치지 않는다.
은닉될 4x4 블록(1508)에 대한 영향을 미치는 4x4 이웃(1504)의 상대적인 위치로 인해, 영향을 미치는 이웃에 존재하는 모든 방향성 구조들이 은닉될 4x4 블록(1508)으로 확장되거나 또는 계속되어, 은닉될 4x4 블록(1508)에 영향을 미치지는 않는다. 실제로, 1506에서 굵은 선으로 표시된 표시기와 평행한 방향성 구조들만이 은닉될 4x4 블록(1508)에 영향을 미칠 잠재 능력을 갖는다. 따라서, 클리크 타입 1은 영향을 미치는 4x4 이웃(1504)으로부터 은닉될 4x4 블록(1508)으로 단지 모드 3 및 7의 전파만을 허용한다. 이와 같이, 클리크들은 방향성 전파 필터들을 정의하여, 어떤 모드들을 허용하고 어떤 다른 모드들을 중단시킨다. 따라서, 도15는 4개의 클리크 타입들(1-4) 및 굵은 선으로 표시된 방향성 표시기가 각각의 타입에 대한 관련된 허용 모드들을 보여줌을 예시한다.
은닉 방향성에 대한 기여(contributions) 결정
지배(governing) 클리크들에 기반하여 전파하는 것이 허용되는 영향을 미치는 이웃들의 인트라_4x4 모드들은 은닉될 4x4 블록의 방향성 특성들을 결정(추정)하는데 공동으로 영향을 미치고, 그 결정을 공유한다. 다수의 영향을 미치는 이웃들로부터의 이러한 공동 영향의 결과로서 결과적인 방향성 속성이 계산되는 처리는 다음과 같이 설명될 수 있다.
도15에서 제시된 8개의 방향성 인트라_4x4 예측 모드들(즉, DC 모드를 제외한 모든 모드들) 각각은 다음과 같이 단위(unit) 벡터로 표현될 수 있고:
cosθi + sinθj
그리고 그 방향성 화살표와 동일한 방향으로 지향(orient)된다. 이러한 경우, θ는 x축 및 8개의 모드들 중 어떤 모드와 관련된 방향성 화살표 사이에 위치하는 양의 각도이다. 단위 벡터 i 및 j 는 x 축 및 y축을 각각 따르는 단위 벡터를 나타낸다. DC 모드(모드 2)는 제로 벡터 0j + 0j로 표시된다.
특정 4x4 블록에 있어서, 특정 인트라_4x4 예측 모드가 이러한 4x4 영역 내의 방향성 구조를 포착(capture)하는데 있어서 매우 양호한 매칭이면, 이러한 모드에 기반한 예측이 매우 "작은" 잔류만을 성공적으로 초래할 것이 예상된다. 신호의 방향성 특성들이 4x4 블록 경계들에 걸쳐서 불연속 특성을 갖는 경우, 이에 대한 예외가 발생할 수 있다. 상술한 호의적이고 통계적으로 매우 일반적인 상황하에서, 잔류 신호의 변환 및 양자화로부터 초래되는 넌-제로들의 수는 매우 작을 것이다. 따라서 인트라_4x4 코딩된 블록과 관련된 넌-제로 계수들의 수는 특정된 예측 모드가 그 블록의 데이터에 대한 실제 방향성 구조와 얼마나 정확하게 매칭되는가에 대한 척도로서 사용될 수 있다. 정확하게는, 넌-제로 계수들의 수 증가는 선택된 예측 모드가 4x4 블록의 방향 속성을 기술하는 정확도 레벨을 악화시킴을 의미한다.
일 실시예에서, 영향을 미치는 이웃들의 개별적인 기여도를 제시하는 방향성 은 단위 벡터들 및 이들의 합산(단 벡터 합)으로 표시되어 결과적인 방향성을 생성한다. 그러나 보다 정확한 방향성 정보에 보다 많은 가중치를 부여하는 것이 바람직하다. 이를 위해, 파라미터 "넌-제로 계수들의 수"에 대한 모든 허용가능한 값들의 세트 N={0,1,2,3...16}에 대한 양의, 비-증가 함수가 정의된다. 일 실시예에서, 이러한 함수는 다음과 같이 주어진다:
Figure 112007013575091-pct00001
위의 함수는 벡터 합에서 가중치들을 산출한다. 보다 작은 "넌-제로 계수들의 수"는 보다 큰 가중치를 초래하고, 보다 많은 "넌-제로 계수들의 수"는 보다 작은 가중치를 초래한다.
상기 정보에 기반하여, 결과적인 방향성(은닉될 4x4 블록에 대한 추정된 방향성)은 다음과 같이 계산될 수 있다:
Figure 112007013575091-pct00002
은닉될 4x4 블록에 대한 방향성 구조를 결정하기 위한 처리의 최종 단계는 결과적인 벡터
Figure 112007013575091-pct00003
를 양자화하는 것이다.
도16은 결과적인 방향성 벡터
Figure 112007013575091-pct00004
를 양자화하는 처리를 보여주는 모드 다이아그램이다. 일 실시예에서, 처리 논리부(802)는 상술한 결과적인 벡터를 양자화하도록 구성되는 양자화 논리부를 포함한다. 양자화 논리부는 2-단 양자화기이다. 제1 단은 제로 벡터 또는 넌-제로 벡터 중 하나로서 그 입력을 분류하는 크기 양자 화기를 포함한다. 제로 벡터는 원형 지역(1602)으로 표시되고, 예측 모드 2와 관련된다. 넌-제로 벡터는 원형 지역(1602)의 외부 벡터들로 표현되고, 모드 2를 제외한 예측 모드와 관련된다. 제1 단으로부터의 넌-제로 출력들에 있어서, 제2 단은 8개의 방향성 인트라_4x4 예측 모드들 중 하나로 그 입력을 분류하기 위한 위상 양자화기를 구현한다. 예를 들어, 영역(1604) 내의 결과적인 벡터들은 모드 0으로 양자화된다.
비록, 상술한 실시예들이 은닉될 대다수의 4x4 블록들의 은닉 결과를 제공하지만, 출력(즉, 결과적인 분류)이 재조정될 필요가 있는 상황이 존재할 수 있다. 이러한 상황은 2개의 카테고리, 즉 "전파 룰" 및 "중단 룰" 하에서 그룹화될 수 있다.
전파 룰 #1 : 대각 분류 일관성
도17은 공간 에러 은닉 시스템의 일 실시예에서 대각 분류에 대한 전파 룰 #1의 일 실시예를 보여주는 도이다. 룰 #1은 대각적으로(좌하 또는 우하 방향) 예측된 외부의 영향을 미치는 이웃이 은닉될 4x4 블록의 최종 분류를 결정하기 위해서, 영향을 미치는 이웃이 동일하게 지향된(oriented) 이웃들을 가질 것을 필요로 한다. 따라서, 도17에 제시된 4가지 상황에서, 은닉될 블록은 1702에서 제시되고 그 외부의 영향을 미치는 이웃은 1704로 제시된다. 룰 #1에 따라, 이웃(1704)은 동일한 지향을 갖는 그 이웃들(1706,1708) 중 하나를 가져야 한다.
룰 #1은 모드 결정 알고리즘에 기반한 공통 레이트-왜곡 기준이 4x4 블록 방향성 특성들을 정확하게 포착하지 못하는 경우에 이용된다. 일 실시예에서, 룰 #1 은 다른 비-대각 방향성 모드들을 지원하도록 수정된다. 다른 실시예에서, 룰 #1은 외부의 영향을 미치는 이웃이 요구되는 것만큼 작지 않은 경우(즉, 높은 신뢰도 분류가 아닌 경우)에만 조건적으로 부가된다.
전파 룰 #2: 세대(generation) 차이
도18은 공간 에러 은닉 시스템의 일 실시예에서 세대 차이에 대한 전파 룰 #2의 일 실시예를 보여주는 도이다. 룰 #2는 은닉될 매크로블록의 4x4 블록 내의 세대들에 걸쳐 방향성 모드들이 전파하는(즉, 그들의 이웃에 영향을 미치는) 방식을 제한한다. 세대 속성은 4x4 블록의 이웃에서 가용한 가장 믿을만한 방향성 정보의 순서에 기반하여 정의된다: 정확하게는, 이러한 값에 1을 더한 값으로 주어진다. 정의적으로, 은닉될 매크로블록의 (가용한) 외부 이웃들은 세대 0이다. 따라서, 도18에서, 인덱스 4 및 5를 갖는 4x4 블록들은 0 세대 이웃을 갖는다: 이러한 블록들 모두는 세대 1이다.
도18에 제시된 바와 같이, 인덱스 4 및 5를 갖는 4x4 블록들은 동일한 예측 모드를 갖는 제시된(검은 실선 화살표) 공통 외부 이웃으로 인해 근본적으로 대각_좌_하에 의해 주어진 최종 분류들을 갖는다.
이전에 설명된 경우들에서, 인덱스 6을 갖는 4x4 블록에 대한 대각_좌_하 분류는 2개의 이웃들, 즉 인덱스 6 및 7을 갖는 4x4 블록들에 영향을 미친다. 그러나 룰 #2의 제한하에서, 인덱스 5를 갖는 4x4 블록은 전파될 방향성 정보로서 정확한 방향을 따라 위치하는 인덱스 6을 갖는 이웃 4x4 블록에만 그 방향성 정보를 전파하는 것이 허용된다. 빈 화살표(open arrow)로서 제시된 바와 같이, 인덱스 5를 갖는 4x4 블록으로부터 인덱스 7을 갖는 4x4 블록으로의 대각_좌_하 전파는 디스에이블된다.
전파 룰 #3: 이웃들을 한정하는 둔각
도19는 공간 에러 은닉 시스템의 일 실시예에서 이웃들을 한정하는 둔각에 대한 전파 룰 #3의 일 실시예를 보여준다. 근본적으로 인트라_4x4 예측 모드 3 및 8을 나타내는 2개의 단위 벡터 사이의 위상 불연속성으로 인해, 그 방향을 부드럽게 변경하는 에지에도 불구하고, 결과적인 방향성 분류가 완전히 기대하지 못하게(에지에 거의 로컬적으로 수직하게) 나타나는 이웃들이 발생한다. 예를 들어, 1902에서 로컬 에지 경계가 제시되고 은닉 블록(1094)은 에지(1902)에 거의 수직한 결과적인 방향성 분류를 포함한다.
일 실시예에서, 가장 큰 위상 이격을 갖는 2개의 영향을 미치는 이웃들의 예측 모드들 사이에서의 위상 차이를 계산함으로써 이러한 이웃들을 검출하는 것이 가능하다. 또 다른 실시예에서, 최종 분류 및 기여하는 이웃들 중 임의의 이웃 사이의 최대 위상 차이를 평가하는 것이 가능하다. 어느 경우이든, 이웃을 한정하는 둔각이 검출되는 경우, 최종 분류 결과는 적절하게 변경된다.
중단 룰 #1: 맨하튼 코너
도20은 공간 에러 은닉 시스템의 일 실시예에서 맨하튼 코너에 속하는 중단 룰 #1의 일 실시예를 보여준다. 블록(2002) 및 인덱스 3을 갖는 4x4 블록을 참조하면, 동일한 순서의 (넌-제로 계수들의 수에 기반한) 가중치를 가정하는 경우, 상(above) 및 좌(left) 이웃들(즉 모드 0(수직) 및 1(수평)) 각각으로부터 영향을 받 고, 나머지 이웃들로부터는 어떠한 다른 상당량의 방향성 영향을 받지 않기 때문에, 이는 이 블록에 대해 최종 방향성 분류(즉, 예측 모드)로서 모드 4(대각_우_하)를 초래한다.
인덱스 3을 갖는 4x4 블록과 관련된 방향성 정보는 결과적으로 적어도 인덱스 12를 갖는 4x4 블록에 영향을 미치고, 인덱스 12를 갖는 블록에 대한 분류를 압도하였다면(dominate), 또한 인덱스 15를 갖는 4x4 블록에도 영향을 미친다. 그 전파 및 잠재적인 영향뿐만 아니라, 충분히 큰 가중치를 가정하면, 모드 4 영향은 인덱스 12 및 15를 갖는 블록들에 대한 분류에도 영향을 미쳐서, 실제 코너의 상당한 왜곡을 초래하게 된다.
이러한 바람직하지 않은 현상을 방지하기 위해서, 중단 #1 룰 실시예는 블록 2004에 제시된 바와 같이 인덱스 3을 갖는 4x4 블록을 대각_좌_하로서 분류하도록 동작하여, 그 영향이 그 이웃들로 전파하지 않도록 한다(여기서 "중단 룰"로 지칭됨).
색차 ( chroma ) 채널 블록들의 은닉
도21은 손실된 색차(Cb 및 Cr) 채널 8x8 화소 블록들에 대한 공간 은닉 알고리즘의 일 실시예의 동작을 보여준다. 일 실시예에서, 이러한 알고리즘은 코절한 2개의 이웃들(즉, 상부 및 좌측 이웃 색차 블록들)의 (인트라) 색차 예측 모드 정보만을 이용하여 적절한 방향성 분류를 추론하고, 따라서 은닉될 색차 블록에 대한 색차 예측 모드를 추론한다. 예를 들어, 상부 및 좌측 이웃 색차 블록들이 은닉될 색차 블록에 대한 색차 예측 모드를 결정하는데 어떻게 사용되는지를 예시하는 다 양한 예들이 제시된다.
넌- 코절 이웃 정보를 사용하는 SEC의 인헨스드 버젼
일 실시예에서, 손실 영역을 둘러싸는 영역들로부터의 보다 많은 공간 정보(휘도, 색차, 및 방향성)을 이용하는 것은 공간 은닉 알고리즘들이 보다 정확하게 손실 데이터를 복원하도록 함으로써 공간 은닉 알고리즘의 품질을 개선한다. 따라서, 공간 은닉을 위한 넌-코절 이웃들로부터의 정보를 이용하기 위해서, 2개의 기술들이 아래에서 설명된다.
은닉된 매크로블록의 하위 절반에서의 평균 밝기 및 컬러 보정
상술한 바와 같이, 단지 코절 이웃들만으로부터의 정보가 SEC에서 사용되는 경우, 결과적인 은닉은 넌-코절 이웃들을 갖는 은닉된 영역의 경계를 따라 밝기(휘도 채널) 및/또는 컬러(색차 채널) 미스매치를 가질 수 있다. 이는 이용되는 정보에 대한 주어진 제한을 이해하기 쉽다. 따라서, 은닉 품질을 개선할 수 있는 하나의 기회는 이러한 미스매치를 방지하는 것이다. 이는 은닉된 영역을 그 전체 주변과 보다 양호하게 섞이게 하여, 결과적으로 그 선명도(visibility)를 감소시킨다. 넌-코절 이웃들로부터의 정보의 사용은 객관적인 품질 메트릭에 대한 상당한 개선을 야기함을 주목하는 것이 중요하다.
상술한 바와 같이, SEC 알고리즘의 일 실시예는 제로-잔류 인트라_4x4 디코딩에 의존한다. 은닉될 각각의 매크로블록에 있어서, SEC 처리는 인트라_4x4 코딩된 매크로블록 객체(소위 "은닉 매크로블록")를 생성하고, 이를 위해 휘도 채널과 관련된 16개의 인트라_4x4 예측 모드들은 코절 이웃 휘도 채널로부터 가용한 방향 성 정보에 기반하여 결정된다. 유사한 방식으로, 은닉 매크로블록에 대한 색차 채널 (공통) 인트라 예측 모드는 코절 이웃들의 색차 채널들로부터 가용한 방향성 정보에 기반하여 결정된다. 일 실시예에서, 이러한 설계에 대한 개선은 가용한 (코절) 이웃들의 휘도 및 색차 채널들 모두로부터 공동으로 추출된 정보에 기반하여 통일된 방식으로 은닉될 매크로블록에 대한 방향성 특성들을 분석 및 합성할 예비 처리 단을 도입하는 것이다.
인트라_4x4 예측 모드들 및 색차 인트라 예측 모드가 은닉 매크로블록에 대해 결정되면, 이는 어떠한 잔류 데이터도 없이 정규 디코딩 처리로 제공된다. 은닉 매크로블록에 대한 디코더 출력은 베이스라인 공간 은닉 결과를 제공한다.
본 섹션에서 제시되는 개선에서, 상술한 베이스라인 (제로-잔류) 은닉 매크로블록은 넌-코절 이웃들을 갖는 경계들을 따라 총 밝기 및/또는 컬러 미스매치를 피하기 위해서 약간의 잔류 정보로 증대된다(augment). 구체적으로, 단지 양자화된 DC 계수만으로 구성되는 잔류 데이터가 은닉 매크로블록의 하위 절반의 휘도 4x4 블록으로 제공된다.
도22는 인헨스드 공간 에러 은닉 시스템의 일 실시예에서 은닉될 휘도 및 색차(Cr,Cb) 매크로블록들의 다이아그램이다. 도22에 제시된 바와 같이, 단지 양자화된 DC 계수들만으로 구성되는 잔류 데이터는 은닉 매크로블록의 하위 절반의 휘도 4x4 블록(즉, 인덱스 8-15를 갖는 휘도 블록)으로 제공된다. 유사한 방식으로, 색차 채널들에서 인덱스 2 및 3을 갖는 4x4 블록들이 DC-계수-전용(only) 잔류들로 증대된다. 휘도 및 색차 채널들 모두에 있어서, 보정 DC 값들이 수직하게 아래에 위치하는 넌-코절 이웃 4x4 블록들의 평균 (밝기 및 컬러) 값들에 대해 계산된다. 이러한 인헨스드 알고리즘의 상세한 내용은 다음 섹션에서 제시된다.
인헨스드 손실 맵 생성
이전과 같이, 비트 스트림의 에러로부터 복원(검출 및 재동기화)시에 알고리즘의 제1 행동은 손실 정도의 식별(손실 맵 생성)이다.
도23은 인헨스드 손실 맵의 일 실시예를 보여준다. 은닉 처리에서 가용한 넌-코절 이웃들로부터의 정보 사용을 지원하기 위해서, 인헨스드 손실 맵은 도11에서 제시된 기본적인 손실 맵의 2개 상태('0' 및 '1')에 부가하여, 새로운 2개의 매크로블록 마크-업 상태('10' 및 '11')를 도입한다.
도23에 제시된 바와 같이, 손실 맵이 비트 스트림 에러로부터 복원된 바로 후에 제1 시간에서 생성되면, 디코더는 손실 영역의 넌-코절 이웃들의 모든 매크로블록들을 상태 '11'로 표시한다. 이 시점으로부터, 이러한 넌-코절 이웃 매크로블록들로부터의 정보는 아직 디코더에서 이용가능하지 않다: 인헨스드 공간 은닉 처리는 개시할 수 없고 지연되어야만 한다.
디코딩 처리가 직면되고 손실 영역의 넌-코절 이웃들의 마크-업을 위한 데이터를 성공적으로 디코딩하면, 인헨스드 손실 맵에서 그들의 상태를 '11'에서 '10'으로 변경하고, 최종적으로 도23에 제시된 손실 맵을 도24에 제시된 맵으로 전환시킨다. '10'의 마크-업 값은 SEC 논리부에 의해 요구되는 코절 정보가 그 특정 매크로블록에 대해 이용가능함을 표시한다.
언제 인헨스드 공간 은닉이 발생하는가?
어떠한 가용한 넌-코절 이웃들을 갖지 않는 손실/에러 매크로블록들에 있어서, 상술한 공간 은닉 처리들은 즉시 개시될 수 있다. 하나 이상의 가용한 넌-코절 이웃들을 갖는 손실/에러 블록들에 있어서, 인헨스드 공간 은닉을 제공하기 위해서 다음 조치들이 이뤄진다.
1. 예비 디코딩 처리(즉, 가용한 넌-코절 이웃들 모두에 대해 매크로블록 패킷 생성)가 완료되면 즉시 은닉 매크로블록이 합성될 수 있다. 이는 은닉 매크로블록을 생성하는데 있어서의 대기시간(latency)을 감소시킬 것이다. 그러나 예비 디코딩과 은닉 컨텍스트(context) 간의 빈번한 스위칭은 상당한 명령 캐시 트래슁(cache trashing)을 초래하여 이러한 동작 모드의 실행 효율성을 감소시킨다.
2. 현재 슬라이스의 디코딩 완료를 대기하지 않고, 모든 원래 마크-업된 ('11' 값으로) 넌-코절 이웃 매크로블록들의 예비 디코딩 처리가 완료되면 즉시 은닉 매크로블록들이 함께 합성될 수 있다. 은닉 대기시간 및 실행 효율성의 관점에서, 이러한 방법은 가장 양호한 트레이드-오프를 제공할 수 있다. 이러한 조치는 각 매크로블록의 예비 디코딩 후에 손실 맵의 검사(inspection)를 필요로 한다.
3. 원래 마크-업된 넌-코절 이웃 매크로블록들 중 마지막 매크로블록을 포함하는 (전체) 슬라이스에 대한 예비 디코딩 처리가 종료될 때, 은닉 매크로블록은 함께 합성될 수 있다. 이는 은닉 매크로블록들을 생성하는 대기시간을 바람직하지 못하게 증가시킬 수 있다. 그러나 구현 복잡도 및 실행 효율성의 관점에서, 이는 가장 간단하고 가장 효율적인 방법을 제공한다.
은닉 매크로블록에 대한 QP Y 의 선택
SEC 알고리즘에 의해 합성된 은닉 매크로블록에서 잔류 데이터의 존재는 QPY 값(휘도에 대한 양자화 파라미터)을 이러한 매크로블록에 할당하는 필요성 및 이러한 양자화 레벨에서 잔류 정보를 제공할 필요성을 의미한다. SEC의 기본 버젼에서, 은닉 매크로블록들에서 어떠한 잔류 데이터도 존재하지 않기 때문에, QPY를 어드레스할 필요성이 없다. 이는 어떠한 가용한 넌-코절 이웃들도 갖지 않는 매크로블록들에 대한 SEC의 인헨스드 버젼에도 역시 적용된다.
하나 이상의 가용한 넌-코절 이웃들을 갖는 은닉 매크로블록에 대한 QPY의 선택에 대해, 다음 2가지 선택들이 이용가능하다:
1. 넌-코절 이웃의 바로 아래의 QPY 값을 은닉 매크로블록은 물려받을 수 있다.
2. 은닉 매크로블록에 대한 QPY 값은 상대적으로 높은 값으로 균일하게 설정되어 이러한 매크로블록들 내부에서 발생하는 강력한 디블록킹(deblocking) 필터링 동작을 실행할 수 있다. 특히, 인헨스드 SEC 설계에서, 이는 코절 및 넌-코절 이웃들로부터 전파되는 잠재적으로 상이한 밝기 및 컬러 정보가 만나는 경우 은닉된 매크로블록들의 적도(equator)에 걸쳐 수직적으로 약간의 평탄화(smoothing)를 인에이블할 것이다. 이러한 설계에서 특히 강력한 디블록킹 필터링은 주관적 및 객관적인 은닉 성능을 개선할 수 있다.
인헨스드 SEC의 상위-레벨 구조
도25는 인헨스드 SEC를 제공하는 방법의 일 실시예를 보여준다. 인헨스드 SEC는 SEC 기본 버젼에 대한 개선을 제공하고, 은닉 매크로블록이 가용한 그 아래의 이웃을 가지 않는 경우에만 가동(activate)된다. 아래의 이웃 매크로블록이 손실되거나 또는 존재하지 않는 경우(즉, 은닉될 매크로블록이 하위 프레임 경계 위에 존재하는 경우)에는 그렇지 않을 것이다. 이러한 상황에서, 인헨스드 SEC는 SEC의 기본 버젼과 동일하게 동작할 것이다.
여기서 제시된 인헨스드 SEC의 기본적인 방법을 확장하여 우측 이웃이 이용가능한 은닉 매크로블록의 우측 절반에서 유사한 밝기 및 컬러 보정을 달성하는 것 역시 가능하다.
도26은 인헨스드 SEC 특징들을 이용하는 것이 가능한 시기를 결정하는 방법에 대한 일 실시예를 제시한다.
휘도 채널에서의 평균 밝기 보정
도27은 인헨스드 SEC 시스템의 일 실시예에서 평균 밝기 보정을 달성하는 방법에서 사용되는 변수들의 해상도(definition)를 보여준다. 도29는 하나의 블록을 보여주고, 이웃하는 4x4 블록들에 대한 인트라_4x4 예측들을 수행하는데 사용되는 7개의 화소들(2902)을 식별한다.
도28은 인헨스드 SEC 실시예에서 은닉 매크로블록의 하위 절반에서 평균 밝기(즉, 휘도 채널), 보정을 달성하기 위한 알고리즘을 제공하는 방법의 일 예를 보여준다.
블록(2802)에서, 은닉 매크로블록의 각각의 4x4 블록에서, 단지 이러한 7개의 강조된 화소 값들에 대한 계산은 동일한 MB에서 H.264에 규정된 4x4 블록 스캔 순서로 모든 결과적인 4x4 블록들에 대해 다음 계산을 순환적(recursive)으로 계속하는데 충분하다:
a. 모든 (16개) 화소 값들 및 특히 (강조된 것들에) 대응하는 7개의 값들의 서브셋.
b. (모든 화소 값들에 기반하여) 정확하게 또는 (공식에 기반하여 하나의 인터_4x4 예측 모드를 사용하여, 아래 참조) 대략적으로 평균 밝기 값.
블록(2804 및 2808)에서, 인트라_4x4 예측 블록에 대한 평균 밝기 값은 그 4x4 블록의 16개의 개별 화소 값들 모두를 먼저 계산하고, 그리고 나서 모든 16개 값들에 대해 평균을 취함으로써(뒤이어 적절한 근사화가 이뤄짐) 간단한 방식으로 정확하게 계산될 수 있다. 그러나 동일한 양을 계산하는 보다 간단하고, 보다 빠르지만, 보다 대략적인 방법이 존재한다. 이러한 방법은 각각 특정 인트라_4x4 예측 모드와 관련되는, 8+3개의 상이한 (간단한) 공식들을 사용하는 것이 필요하다. 비록 이러한 공식들의 유도들이 어렵지는 않지만, 근사치에 대한 약간의 주의는 그들의 정확도를 개선할 수 있다.
블록(2806)에서, 하위 이웃 매크로블록의 가장 상위 4x4 블록들, 즉 스캔 인덱스 {0,1,4,5}를 갖는 블록들은 디코딩 처리가 수행되어야 한다. 매우 빠르게 그리고 효율적인 부분 디코딩을 통해 매우 낮은 복잡도를 달성하는 프레임워크가 아래의 다른 섹션에서 제시된다. 이러한 프레임워크가 주어지면, 이러한 평균을 계 산하는 2개의 상이한 방법들이 아래에서 제시된다.
하나의 경우에서, 잔류 신호의 DC 계수에 의해 기여되는 잔존하는 성분뿐만 아니라, 4x4 블록을 지배하는 인트라 예측 모드에 의해 기여되는 평균 밝기 성분의 결합된 사용을 통해, 이러한 평균은 전체 4x4 블록에 대해 평균량으로서 계산될 수 있다. 그러나 화소 도메인의 4x4 블록 컨텐츠들이 균일하지 않은 경우(예를 들면, 수평 또는 둔각, 또는 일부 텍스쳐(texture)), 결과적인 평균은 설명된 밝기 보정 알고리즘에 만족스러운 입력을 제공하지 않는데, 왜냐하면 이는 4x4 블록의 임의의 섹션을 대표하지 않기 때문이다.
다른 경우에서, 전체 4x4 블록에 대한 평균 밝기를 계산하는 것이 아니라, 평균 밝기는 밝기 보정이 일어나는 곳과 가장 근접하여, 밝기 보정이 일어나는 곳과 가장 잘 상관되는 4x4 블록의 4화소들의 가장 상위 로우에 대해서만 계산된다.
블록(2810)에서, 은닉 매크로블록의 블록 8 및 10에 있어서, 이는 하위 이웃의 블록 0이고; 은닉 매크로블록의 블록 9 및 11에 있어서, 이는 하위 이웃의 블록 1이고; 은닉 매크로블록의 블록 12 및 14에 있어서, 이는 하위 이웃의 블록 4이고; 은닉 매크로블록의 블록 13 및 15에 있어서, 이는 하위 이웃의 블록 5이다.
밝기 보정이 블록들 {8,9,12,13)에 있어서, 이러한 블록들에 대해 보다 정확하게 타겟 평균 밝기 값을 발생시킬 수 있는 방식이 다양하게 열려 있다. 2가지 가능한 방법은 아래에서 설명된다.
하나의 경우로서, 타겟 평균 밝기 값들은 하위 이웃의 대응하는 4x4 블록들의 평균 밝기 값들로서 바로 취해질 수 있다. 이러한 경우, 은닉 MB의 적도 (equator)에 대해 특히 수직하게 강력한 디블록킹 필터링을 수행하는 것이 바람직하다.
대안으로서, 블록 8에 대한 타겟 평균 밝기는 은닉 매크로블록에서 블록 2 및 하위 이웃의 블록 0의 평균 밝기 값들의 평균으로서 취해진다. 은닉 매크로블록의 블록 10의 평균 밝기 값은 하위 이웃의 블록 0의 평균 밝기 값의 정확한 복제(replica)이기 때문에, 여기서 정의된 대로 블록 8에 대한 평균 밝기 값을 설정하는 것은 수직 방향에서 스무스한 융합(blending)을 가능하게 한다. 이는 강력한 디블록킹 필터링에 대한 필요성을 없애준다.
블록(2812)에서, 밝기 보정된 4x4 블록당 하나의 정수 승산(multiplication)이 이러한 단계에서 필요하다.
블록(2814)에서, 밝기 보정된 4x4 블록당 하나의 정수 승산(multiplication)이 이러한 단계에서 필요하다. 단지 넌-제로 양자화된 DC 계수만으로 구성되는 잔류 신호를 인버팅(invert)하는 것은 상수 값을 예측 신호에 균일하게 더함으로써 간단하게 이뤄질 수 있다. 따라서, 이러한 단계에서 이뤄지는 재건은 매우 낮은 계산 복잡도를 갖는다.
색차 채널에서의 평균 컬러 보정
공간 은닉 매크로블록의 하위 절반에서 평균 컬러 (즉, 색차 채널) 보정을 달성하는 알고리즘은 상술한 밝기 보정에서 제시된 알고리즘과 원칙적으로 매우 유사하다.
도22와 관련하여, 은닉 매크로블록의 색차 채널에서 인덱스 2 및 3을 갖는 4x4 블록들 각각은 하위 이웃 매크로블록의 동일한 색차 채널에서 인덱스 0 및 1을 갖는 4x4 블록들로부터 평균 값 보정 정보를 수신한다. 이러한 보정은 모든 매크로블록들에 대한 색차 채널 Cb 및 Cr 모두에 대해 일어난다.
H.264 비트스트림에서의 고효율 부분 인트라 디코딩
예측 (인트라 또는 인터) 코딩된 4x4 (휘도 또는 색차) 블록 내의 재건된 신호는 다음과 같이 표현될 수 있다:
Figure 112007013575091-pct00005
여기서, r, P, 및
Figure 112007013575091-pct00006
각각은 재건 신호(원래의 압축되지 않은 신호 s에 대하 근사치), 예측 신호, 및 압축된 잔류 신호(원래의 압축되지 않은 잔류 신호
Figure 112007013575091-pct00007
에 대한 근사치)를 각각 나타내고, 이들은 모두 정수 값의 4x4 행렬이다.
이러한 4x4 블록 내의 재건 신호의 평균 값(임의의 통계적 측정치일 수 있음)은 다음과 같이 표현될 수 있다:
Figure 112007013575091-pct00008
상기 공식에 있어서, 하위 이웃 매크로블록의 4x4 블록들로부터 평균 밝기 또는 컬러 정보를 추출하는 것은
Figure 112007013575091-pct00009
Figure 112007013575091-pct00010
의 가용성을 요구한다.
Figure 112007013575091-pct00011
는 비트 스트림 (인트라_4x4 코딩된 휘도 블록들의 경우)으로부터 즉시 이용가능하거나, 또는 인트라_16x16 코딩된 휘도 블록들 및 인트라 코딩된 색차 블록들에 대한 광 처리 이후에 압축된 잔류 신호의 양자화된 DC 계수에 관련된다. 후자의 2가지 경우들의 처리는 (부분적으로 실행되는) 4x4 또는 2x2 역 하다마드 변환(단지 덧셈 및 뺄셈만을 필요로 함)과 뒤이은 4 또는 2 리스케일링 연산(리스케일링당 1개의 정수 승산을 필요로 함)들을 포함한다.
Figure 112007013575091-pct00012
를 단지 대략적으로만 파악하면 충분하고, 전술한 바와 같이, 이는 이러한 예측 모드에서 사용되는 이웃 화소 값들의 관점에서 규정되고 사용되는 인트라 예측 모드에 의존하는 하나의 공식을 사용함으로써 달성될 수 있다. 비록 이것이 계산적으로 간단한 처리로 보이지만, 이는 인트라 예측에서 사용될 이웃 화소 값들의 가용성을 필요로 한다. 이는 디코딩 처리가 발생함을 의미한다. 그럼에도 불구하고, 요구되는 디코딩 처리는 단지 부분적이고, 아래에서 설명되는 바와 같이 매우 효율적으로 구현될 수 있다.
다음은 슬라이스 경계 바로 아래에 위치하는 인트라 코딩된 매크로블록들에 대한 것이다.
1. 슬라이스 경계 바로 아래에 위치하는 인트라 _4x4 코딩된 MB
여기서, 우리는 슬라이스 경계 바로 아래에 위치하는 인트라_4x4 코딩된 매크로블록의 최상위 4개의 4x4 블록들, 즉 인덱스 b∈{0,1,4,5}를 갖는 블록들에 관심을 둔다.
도30은 슬라이스 경계 바로 아래의 인트라 4x4 블록의 일 실시예를 보여준다. 라인 AA'는 상술한 슬라이스 경계를 표시하고, 4x4 블록은 고려중인 현재 블록이고, 인트라_4x4 예측을 수행하는데 사용될 수 있었던 9개의 이웃 화소들은 이용가능하지 않은데, 왜냐하면 이들이 슬라이스 경계의 다른 측에 위치하여, 이들은 다른 슬라이스에 속하기 때문이다.
도31은 인트라_4x4 블록 내의 화소들 및 이웃 화소들의 이름을 보여준다. 이웃 화소들 {I,J,K,L}의 가용성은 현재 4x4 블록에 대한 허용가능한 인트라_4x4 예측 모드들이 {1(수평), 2(DC), 8(수평-상향)}으로 제한됨을 의미한다. BB'가 프레임의 좌측 경계 또는 다른 슬라이스 경계를 표시하여, {I,J,K,L} 어느 것도 이용가능하지 않는 경우, 허용가능한 인트라_4x4 예측 모드는 단지 {2(DC)}이다.
따라서, 가장 일반적인 경우에서, 슬라이스 경계 바로 아래에 위치하는 인트라_4x4 코딩된 4x4 블록에 있어서, 디코딩 및 재건에 필요한 정보는 다음과 같다:
1. 인트라_4x4 예측 모드
2. 잔류 정보(양자화된 변환 계수),
3. 4x4 블록의 바로 좌측에 위치하는 4개의 이웃 화소들 {I,J,K,L}의 값들.
이러한 필요 충분한 데이터 세트는 현재 4x4 블록의 모든 화소 값들 {a,b,c,....n,o,p}, 특히 바로 오른쪽의 4x4 블록의 디코딩에 필요한 화소 값들 {d,h,i,p}의 재건을 인에이블할 것이다.
2. 슬라이스 경계 바로 아래에 위치하는 인트라 _16x16 코딩된 MB
여기서 다시, 우리는 슬라이스 경계 바로 아래에 위치하는 인트라_16x16 코 딩된 MB의 최상위 4개의 4x4 블록들(즉, 도27에서 인덱스 b∈{0,1,4,5}를 갖는 블록들)에 관심을 둔다.
도32는 슬라이스 경계 아래에 위치하는 인트라_16x16 코딩된 매크로블록의 일 실시예를 보여준다. 라인 AA'는 상술한 슬라이스 경계를 표시하고, 4x4 블록들은 현재(인트라_16x16 코딩된) 매크로블록을 구성하며, 인트라_16x16 예측을 수행하는데 사용될 수 있었던 17개의 화소들은 이용가능하지 않은데, 왜냐하면 이들이 슬라이스 경계의 다른 측에 위치하고 따라서 이들이 다른 슬라이스에 속하기 때문이다. 단지 16개의 이웃 화소들(라인 BB'의 바로 좌측에 위치하는 화소들)의 잠재적인 이용가능성은 현재 매크로블록에 대한 허용가능한 인트라_16x16 예측 모드들이 {1(수평), 2(DC)}로 제한됨을 의미한다. BB'가 프레임의 좌측 경계 또는 다른 슬라이스 경계를 표시하여 라인 BB'의 바로 좌측에 위치하는 16개의 이웃 화소들이 이용가능하지 않으면, 허용가능한 인트라_16x16 예측 모드는 단지 {2(DC)}이다.
현재 매크로블록이 인트라_16x16_수평 예측 모드를 사용하여 인코딩되는 경우, 라인 BB'의 바로 좌측에 위치하는 단지 최상위 4개의 화소들의 가용성은 현재 매크로블록 내의 최상위 4x4 블록들을 디코딩 및 재건하는데 충분하다. 이는 인트라_4x4 코딩된 매크로블록들의 단지 최상위 4개의 4x4 블록들만의 디코딩을 인에이블하는 상술한 '이웃 화소들에 대하 최소 의존성' 프레임워크와 일치한다.
다른 한편으로, 현재 매크로블록이 인트라_16x16_DC 예측 모드를 사용하여 인코딩되는 경우(그리고 슬라이스 경계의 바로 우측에 위치하지 않고, 좌측 프레임 경계에 위치하지 않음), 라인 BB'의 바로 좌측에 위치하는 모든 16개의 이웃 화소 들의 가용성이 현재 매크로블록(모든 다른 것들도 마찬가지임) 내의 최상위 4개의 4x4 블록들을 디코딩 및 재건하는데 필요하다. 이는 최상위 4개의 이웃 화소들만으로 충분하지 않고, 이는 바람직하지 않다.
이러한 관찰에 기반하여, 현재 효율적인 부분 디코딩은 다음 방식으로 인트라_16x16_DC 예측 모드의 제한된 사용을 제안하고, 이를 통해 이점을 얻는다.
슬라이스 경계 바로 아래에 위치하고, 슬라이스 경계 우측에 바로 인접하지 않고 좌측 프레임 경계에 위치하지 않는 인트라_16x16 코딩된 매크로블록들에 대해서만, 인트라_16x16_DC 예측 모드의 사용이 회피되어야만 하고, 이러한 매크로블록들에 대해서, 인트라_16x16_수평 예측 모드가 균일하게 사용되어야 한다.
3. 슬라이스 경계 바로 아래에 위치하는 MB에 대한 인트라 코딩된 색차 채널
여기서 우리는 슬라이스 경계 바로 아래에 위치하는 인트라 코딩된 매크로블록의 2개의 색차 채널들(Cb 또는 Cr) 중 하나의 최상위 2개의 4x4 블록들(즉, 도22의 세트{0,1} 인덱스를 갖는 블록들)에 관심을 둔다.
도33은 슬라이스 경계 바로 아래의 색차 채널의 일 실시예를 보여준다. 라인 AA'는 상기 슬라이스 경계를 표시하고, 4x4 블록들은 현재 (인트라 코딩된) 매크로블록 색차 채널들 중 하나를 구성하고, 이러한 색차 채널에서 인트라 예측을 수행하는데 사용될 수 있었던 9개 이웃 블록들은 이용가능하지 않은데, 왜냐하면 이들은 슬라이스 경계의 외부 측에 위치하고, 따라서 이들은 다른 슬라이스에 속하기 때문이다. 라인 BB'의 바로 좌측에 위치하는 단지 8개의 이웃 화소들의 잠재적인 가용성은 현재 매크로블록에 대한 허용가능한 색차 채널 인트라 예측 모드들이 {0(DC), 1(수평)}으로 제한됨을 의미한다. BB'가 다른 슬라이스 경계 또는 프레임의 좌측 경계를 표시하여 라인 BB'의 바로 좌측에 위치하는 8개의 이웃 화소들이 이용 불가능한 경우, 허용가능한 색차 채널 인트라 모드는 단지 {0(DC)}이다.
현재 (인트라 코딩된) 매크로블록의 색차 채널들이 인트라_색차_수평 예측 모드를 사용하여 인코딩되는 경우, 라인 BB'의 바로 좌측에 위치하는 최상위 4개의 이웃 화소들만의 가용성은 현재 매크로블록의 대응하는 색차 채널들 내의 최상위 2개의 4x4 블록들을 디코딩 및 재건하는데 충분하다. 이는 상술한 인트라 코딩된 매크로블록의 휘도 채널들의 최상위 4개의 4x4 블록들의 인코딩을 인에이블링하는 "이웃 화소들에 대한 최소 의존성' 프레임워크와 일치한다.
이와 같이, 현재 (인트라 코딩된) 매크로블록의 색차 채널들이 인트라_색차_DC_예측 모드를 사용하여 인코딩되는 경우, 라인 BB'의 바로 좌측에 위치하는 최상위 4개의 이웃 화소들만의 가용성이 현재 매크로블록의 대응하는 색차 채널들 내의 최상위 2개의 4x4 블록들을 디코딩 및 재건하는데 충분하다. 이는 다시 상술한 '이웃 화소들에 대한 최소 의존성' 프레임워크와 일치한다.
H.264에서 잔류 정보의 효율적인 부분 디코딩
여기서, 도31의 위치들 {d,h,l,p}에 대한 최종 화소 값들의 재건에 기여하는 4x4 블록의 잔류 신호 성분의 4번째, 즉 최종 칼럼만을 효율적으로 디코딩하는 문제가 설명된다.
잔류 4x4 블록들에 대한 변환 처리와 관련된 16개의 기본 이미지들이 다음과 같이 결정되며, 여기서 sij(i,j∈{0,1,2,3})는 i번째 수평 및 j번째 수직 주파수 채널과 관련된 기본 이미지이다.
Figure 112007013575091-pct00013
Figure 112007013575091-pct00014
Figure 112007013575091-pct00015
Figure 112007013575091-pct00016
Figure 112007013575091-pct00017
Figure 112007013575091-pct00018
Figure 112007013575091-pct00019
Figure 112007013575091-pct00020
Figure 112007013575091-pct00021
Figure 112007013575091-pct00022
Figure 112007013575091-pct00023
Figure 112007013575091-pct00024
Figure 112007013575091-pct00025
Figure 112007013575091-pct00026
Figure 112007013575091-pct00027
Figure 112007013575091-pct00028
Figure 112007013575091-pct00029
이러한 16개의 기본 이미지들을 주의 깊게 관찰해보면, 이들의 최종 칼럼들이 실제로 단지 4개의 별개의 벡터들을 포함함을 알 수 있다. 4x1 행렬/벡터인 최종 칼럼이 4차원 벡터 공간에 위치하고, 따라서 정확하게 4개의 기본 벡터들이 표현될 필요가 있기 때문에 이는 직관적으로 명백하다.
양자화된 변환 계수들 (즉, 레벨들, zij i,j∈{0,1,2,3})이 비트스트림에서 수신되고, 계수들
Figure 112007013575091-pct00030
을 생성하기 위해, 그리고 역변환을 거치기 위해(즉, 합성 처리에서 기본 이미지들을 가중하기 위해서 가중치를 생성하기 위해) 리스케일링될 때, 상기 관측은 잔류 신호의 최종 칼럼에 대한 재건 표현이 다음과 같이 기록될 수 있음을 의미한다:
Figure 112007013575091-pct00031
상기 소괄호 내의 4개의 스칼라 양들이 계산되면, 단지 우측 쉬프트 및 덧셈/뺄셈만이 요구된다.
리스케링일 처리, 즉
Figure 112007013575091-pct00032
Figure 112007013575091-pct00033
로의 변환 처리에 대한 추가적인 관찰을 통해 상당한 복잡도 절약의 또 다른 소스를 알 수 있다.
Figure 112007013575091-pct00034
에 대한 그들의 의존성뿐만 아니라,
Figure 112007013575091-pct00035
를 스케일링하는데 사용되는 리스케일링 인자들
Figure 112007013575091-pct00036
은 또한 4x4 행렬 내의 다음 위치 구조를 부여한다.
Figure 112007013575091-pct00037
여기서 동일한 컬러를 갖는 리스케일링 인자들은 주어진 QPY에 대해 동일한 값을 갖는다. 이는 다음과 같이 zij로부터 w'ij를 생성하는데 필요한 승산들의 수를 감소시키기 위해서 사용될 수 있다. 잔류 신호의 최종 칼럼을 재건하기 위한 상술한 주어진 가중된 기본 벡터들의 합 공식에서, 기본 벡터 [1 1 1 1]T를 가중하는 제1 가중치는 w'OO 및 W'20의 개별 값들이 아니라, 이들의 합을 포함한다. 따라서, 복수의 승산들이 필요한, 이들의 2개의 값들의 개별적인 계산 및 이들의 합산이 아니라, z00 및 z20을 먼저 더하고, 그리고 나서 이들은 v00=v20으로 리스케일링함으로써 단지 하나의 승산을 통해 동일한 합산 값을 얻을 수 있다. (간략화를 위해, 2의 거듭제곱(power)에 의해 주어지는 또 다른 공통 승산 인자가 본 설명에서는 명확하 게 언급되지 않았다).
이러한 부분 디코딩을 실행하기 위한 계산적인 요건들의 이러한 감소 외에, 잔류 신호의 요구되는 최종 칼럼만을 계산하는 고속 알고리즘이 설계될 수 있다.
이러한 부분 디코딩 처리에 대한 낮은 계산적 요건을 야기하는 또 다른 실제적인 사실은 잔류 신호 블록 내의 최대 16개의 양자화된 계수들 중 단지 일부, 일반적으로 5 이하만이 실제 넌-제로라는 것이다. 요구되는 승산 계수들의 수를 절반으로 줄이기 위해 이러한 사실과 결합되어 상기 기술이 사용될 수 있다.
하위 이웃으로부터 은닉 매크로블록들의 하위 절반으로의 방향성 정보 통합
은닉 매크로블록의 밝기 및 컬러 정정뿐만 아니라, 하위 이웃 매크로블록으로부터 은닉 매크로블록으로 방향성 구조(수직 및 수직에 가까운 구조들)에 대한 정보 통합을 인에이블하는 프레임워크가 설명된다.
제1 단계는 하위 8개의 4x4 블록들(도27에서 블록 인덱스 b∈{8,9,...,15}를 갖는 4x4 블록들)이 균일하게 2(DC)로 설정되는, 제로 잔류 (즉, 기본 버젼 SEC 등) 은닉 매크로블록을 합성하는 것이다. 이는 은닉 매크로블록의 상위 절반에 대한 위의(above) 이웃 블록으로부터 밝기/컬러 및 방향성 정보 모두의 사용을 인에이블하고 하위 이웃 매크로블록으로부터 유사한 정보를 통합하기 위한 가장 순종적인 상태로 은닉 매크로블록의 하위 블록을 만든다.
은닉 매크로블록의 하위 절반에서 이러한 8개의 4x4 블록들 중 임의의 블록에 있어서, 재건된 신호는 다음과 같이 표현될 수 있다:
Figure 112007013575091-pct00038
인트라_4x4 예측으로 인해 위에서, p는 변환 영역에서 하나의 넌제로(DC) 계수에 매핑하는 매우 간단한 신호이다.
(넌제로 잔류 신호 형태로 현재 4x4 블록 은닉에 대한 개선 또는 정교화를 위해)
Figure 112007013575091-pct00039
를 다음과 같이 3개의 항으로 둘 수 있다:
Figure 112007013575091-pct00040
우리는
Figure 112007013575091-pct00041
를 선택한다. 이는 매우 달성하기 용이한데, 왜냐하면 p 및 그 변환 영역 표현을 계산하는 것이 간단하기 때문이다. 이는 위의 이웃으로부터의 영향을 없애고, 따라서 상기 식은
Figure 112007013575091-pct00042
로 주어진다.
하위 이웃 매크로블록의 상위 4개의 4x4 블록들(도22의 띠줄(dashed) 4x4 블록들)의 양자화 계수들, 즉 인덱스들이 이용가능하기 때문에, 효율적인 (간단하고 정확한) 블록 분류 논리부는 이러한 4개의 4x4 블록들을 2개의 클래스로 분류할 것이다: 1. 중요한 수직 또는 수직에 가까운 방향성 구조를 포함함; 2. 수직 또는 수직에 가까운 방향성 구조를 포함하지 않음. 관심사항은 하위 이웃에 존재하는 수직 또는 수직에 가까운 방향성 구조들만을 검출하는 것임을 이해하는 것은 용이한데, 왜냐하면 단지 이들만이 은닉 매크로블록의 하위 절반으로 전파하기 때문이다.
하위 이웃 블록의 이러한 4개의 최상위 4X4 블록들에서, 2개의 성분들, 즉 예측 신호 및 잔류 신호를 갖는 완전한 재건 신호는 디코딩을 통해 이러한 분류 처리를 손상시키기 않는다. 아래에서 설명되는 바와 같이, 디코딩은 필요하지 않고 상술한 분류는 잔류 신호, 즉 그 변환 도메인 표현에 기반하여 정확하게 달성될 수 있다. 이러한 이유는 다음과 같다. 상술한 바와 같이, 슬라이스 경계 바로 아래에 위치하는 인트라_4x4 코딩된 4x4 블록은 모드들{1(수평), 2(DC), 8(수평-상향)} 중 하나를 사용하여서만 예측될 수 있다. 양호한 예측 제공과 관련하여, 이들 모드들 중 어느 것도 수직 또는 수직에 가까운 방향성 구조들에 양호하게 매칭되지 않는다. 따라서, 중요한 수직 및 수직에 가까운 방향성 구조의 경우, 이러한 최상위 4개의 4x4 블록들의 잔류 신호 전력은 특히 수평 주파수 채널들에서 현저할 것이다. 이는 상술한 바와 같이 간단하고 정확한 분류를 가능하게 한다. 유사한 논리가 인트라 코딩된 하위 이웃들의 색차 채널들 및 인트라_16x6 코딩된 하위 이웃들의 최상위 4x4 블록들에 대해 적용된다.
인트라 코딩된 하위 이웃의 최상위 (휘도 또는 색차) 4x4 블록이 클래스 2로 분류되면, 이는 상술한 바와 같이 밝기/컬러 보정에만 기여한다.
인트라 코딩된 하위 이웃의 최상위 (휘도 또는 색차) 4x4 블록이 클래스 1으로 분류되면, 이는 아래에서 설명되는 기술을 통해, 화소 도메인의 전체 정보, 즉 밝기/컬러 및 방향성 모두에 기여한다.
일 실시예에서, 상기 기술은 하위 이웃에 존재하는 수직 또는 수직에 가까운 방향성 구조에 의해 영향을 받는 것으로 결정되는 은닉 매크로블록의 하위 절반의 4x4 블록, 즉 클래스 1로 분류되는 4x4 블록에 대해 다음과 같이 설정한다:
Figure 112007013575091-pct00043
이러한 영향 전파가 일어나는 프레임워크는 아래에서 설명되고, 기본적인 제로-잔류 은닉 매크로블록 합성 처리에서 방향성 정보 전파와 매우 유사하다. 다음은
Figure 112007013575091-pct00044
Figure 112007013575091-pct00045
에 대한 상기 선택들의 결과들을 고려한다.
하위 이웃 매크로블록의 블록
Figure 112007013575091-pct00046
이 클래스 1로 분류된다고 가정하고, 그 재건 신호, 예측 신호 성분, 및 잔류 신호 성분은 각각
Figure 112007013575091-pct00047
,
Figure 112007013575091-pct00048
, 및
Figure 112007013575091-pct00049
로 표시된다. 아래 첨자 LN은 '하위 이웃(Lower Neighbor)'를 나타내고, 'i'는 고려중인 블록의 인덱스를 나타낸다.
상기
Figure 112007013575091-pct00050
Figure 112007013575091-pct00051
는 하위 이웃 클래스 1 4x4 블록의 화소 도메인 컨텐츠를 은닉 매크로블록의 하위 절반 내의 적절하게 (기존 방향성 특성들에 기반하여) 선택된 4x4 블록들로 정확하게 카피/재생성하는, 다음 식을 야기한다:
Figure 112007013575091-pct00052
Figure 112007013575091-pct00053
는 자명하고, 클래스 1 하위 이웃 4x4 블록의 잔류 신호, 즉 양자화 계수들 레벨을 은닉 매크로블록 4X4 블록의 잔류 신호 내로 카피하는 것을 수반한다.
Figure 112007013575091-pct00054
는 덜 자명하지만, 이는 매우 간단한 방식으로 달성될 수 있다.
Figure 112007013575091-pct00055
에 대한 이러한 선택은 클래스 1 하위 이웃 4X4 블록의 예측 신호 컴포넌트를 명확하게 고려하도록 한다. 클래스 1 하위 이웃 4x4 블록이 인트라_코딩된 매크로블록의 휘도 채널의 일부인 경우, 인트라_4X4 예측 모드들의 단지 3가지 타입들만이 가능함을 상기하라. 이러한 경우,
- 인트라_4X4 DC 모드가 사용되면, 상술한 바와 같이
Figure 112007013575091-pct00056
는 매우 간단한 변환 도메인 구조를 가지고,
Figure 112007013575091-pct00057
는 쉽게 계산될 수 있다.
- 인트라_4x4 수평 모드가 사용되면,
Figure 112007013575091-pct00058
는 다소 복잡하지만, 처리할 수 있는 변환 도메인 구조를 가지고,
Figure 112007013575091-pct00059
는 계산될 수 있다.
- 인트라_4x4_수평_상향이 사용되면,
Figure 112007013575091-pct00060
의 변환 도메인 구조는 보다 더 복잡하게 되어
Figure 112007013575091-pct00061
의 계산은 다소 덜 매력적인 방법이 된다.
이러한 논리는 인트라_16x16 코딩된 매크로블록의 휘도 채널들 또는 인트라 코딩된 매크로블록의 색차 채널들 중 하나로부터 기원되는 클래스 1 하위 이웃 4x4 블록들에 대해서도 유사하게 적용되며, 단지 이러한 경우들에서 인트라_4x4_수평_상향에 대응하는 인트라 예측 방식이 존재하지 않고,
Figure 112007013575091-pct00062
계산에 대한 상황이 보다 바람직하다는 점만이 다르다.
이러한 관측에 기반하여, 하위 이웃 매크로블록들로부터 밝기/컬러 및 방향성 정보 모두를 통합하는 현재 프레임워크가 제안되고, 다음 방식으로 인트라_4x4_DC 예측 모드의 바람직한/바이어스된 사용으로부터 이점을 얻을 수 있다.
슬라이스 경계 바로 아래에 위치하는 인트라_4x4 코딩된 매크로블록의 최상위 4개의 4x4 블록들에 대해서만, 그리고 이러한 4x4 블록들 중 하나에서 중요한 수직 또는 수직에 가까운 방향성 구조가 존재하는 경우에만 - 이러한 경우 3개의 허용되는 인트라_4x4 예측 모드중 어떤 모드도 양호한 예측기를 제공하지 않음- 인트라_4x4_DC 모드를 균일하게 선택 및 사용한다.
은닉 매크로블록의 하위 절반에서 4x4 블록들의 선택 서브셋에 클래스 1 하위 이웃 4x4 블록의 완성 데이터가 영향을 미치는 방식은 단지 그 클래스 1 블록에 대한 검출된 방향성 특성들에 의존한다. (부호 및 크기) 클래스 1 4x4의 기울기(sope)에 대한 보다 정교한 분류는 전파 코스들을 식별하기 위해서 사용될 수 있다.
이상에서, 공간 에러 은닉 시스템의 실시예들이 설명되었지만, 이러한 실시예들의 다양한 변형이 가능함을 당업자는 잘 이해할 수 있을 것이다. 따라서 본 발명은 상기 실시예들로 제한되지 않으며, 본 발명의 사상 내에서 다양한 변형이 가능하다.

Claims (36)

  1. 공간 에러 은닉을 위한 방법으로서,
    손상된 매크로블록을 검출하는 단계;
    하나 이상의 이웃 매크로블록들과 관련된 코딩된 매크로블록 파라미터들을 획득하는 단계;
    상기 코딩된 매크로블록 파라미터들에 기반하여 은닉(concealment) 파라미터들을 생성하는 단계; 및
    상기 은닉 파라미터들을 비디오 디코딩 시스템에 삽입하는 단계를 포함하며,
    상기 코딩된 매크로블록 파라미터들은 방향성(directivity) 모드 표시기를 포함하는, 공간 에러 은닉 방법.
  2. 제1항에 있어서,
    상기 하나 이상의 이웃 매크로블록들 각각과 관련된 방향성(directivity) 특성을 결정하는 단계를 더 포함하는 공간 에러 은닉 방법.
  3. 제2항에 있어서,
    상기 방향성 특성을 위한 단위 벡터들을 결정하는 단계를 더 포함하는 공간 에러 은닉 방법.
  4. 제3항에 있어서,
    가중된 벡터들을 생성하기 위해서 상기 하나 이상의 이웃들 각각과 관련된 예측 품질 특성에 기반하여 상기 단위 벡터들 각각에 가중치를 할당하는 단계를 더 포함하는 공간 에러 은닉 방법.
  5. 제4항에 있어서,
    은닉 방향성 표시기(indicator)를 생성하기 위해서 상기 가중된 벡터들을 결합하는 단계를 더 포함하는 공간 에러 은닉 방법.
  6. 제5항에 있어서,
    선택된 은닉 모드 표시기로 상기 은닉 방향성 표시기를 양자화하는 단계를 더 포함하는 공간 에러 은닉 방법.
  7. 제1항에 있어서,
    상기 생성 단계는 은닉 계수들을 제로(zero)로 설정하는 단계를 더 포함하는 공간 에러 은닉 방법.
  8. 공간 에러 은닉을 위한 장치로서,
    손상된 매크로블록을 검출하도록 구성된 논리부(logic);
    하나 이상의 이웃 매크로블록들과 관련된 코딩된 매크로블록 파라미터들을 획득하도록 구성된 논리부;
    상기 코딩된 매크로블록 파라미터들에 기반하여 은닉 파라미터들을 생성하도록 구성된 논리부; 및
    상기 은닉 파라미터들을 비디오 디코딩 시스템으로 삽입하도록 구성된 논리부를 포함하며,
    상기 코딩된 매크로블록 파라미터들은 방향성(directivity) 모드 표시기를 포함하는, 공간 에러 은닉 장치.
  9. 제8항에 있어서,
    상기 하나 이상의 이웃 매크로블록들 각각과 관련된 방향성 특성을 결정하도록 구성된 논리부를 더 포함하는 공간 에러 은닉 장치.
  10. 제9항에 있어서,
    상기 방향성 특성을 위한 단위 벡터들을 결정하도록 구성된 논리부를 더 포함하는 공간 에러 은닉 장치.
  11. 제10항에 있어서,
    가중된 벡터들을 생성하기 위해서 상기 하나 이상의 이웃들 각각과 관련된 예측 품질 특성에 기반하여 상기 단위 벡터들 각각에 가중치를 할당하도록 구성된 논리부를 더 포함하는 공간 에러 은닉 장치.
  12. 제11항에 있어서,
    은닉 방향성 표시기를 생성하기 위해서 상기 가중된 벡터들을 결합하도록 구 성된 논리부를 더 포함하는 공간 에러 은닉 장치.
  13. 제12항에 있어서,
    선택된 은닉 모드 표시기로 상기 은닉 방향성 표시기를 양자화하도록 구성된 논리부를 더 포함하는 공간 에러 은닉 장치.
  14. 제8항에 있어서,
    은닉 계수들을 제로로 설정하도록 구성된 논리부를 더 포함하는 공간 에러 은닉 장치.
  15. 공간 에러 은닉을 위한 장치로서,
    손상된 매크로블록을 검출하는 수단;
    하나 이상의 이웃 매크로블록들과 관련된 코딩된 매크로블록 파라미터들을 획득하는 수단;
    상기 코딩된 매크로블록 파라미터들에 기반하여 은닉 파라미터들을 생성하는 수단; 및
    상기 은닉 파라미터들을 비디오 디코딩 시스템으로 삽입하는 수단을 포함하며,
    상기 코딩된 매크로블록 파라미터들은 방향성(directivity) 모드 표시기를 포함하는, 공간 에러 은닉 장치.
  16. 제15항에 있어서,
    상기 하나 이상의 이웃 매크로블록들 각각과 관련된 방향성 특성을 결정하는 수단을 더 포함하는 공간 에러 은닉 장치.
  17. 제16항에 있어서,
    상기 방향성 특성을 위한 단위 벡터들을 결정하는 수단을 더 포함하는 공간 에러 은닉 장치.
  18. 제17항에 있어서,
    가중된 벡터들을 생성하기 위해서 상기 하나 이상의 이웃들 각각과 관련된 예측 품질 특성에 기반하여 상기 단위 벡터들 각각에 가중치를 할당하는 수단을 더 포함하는 공간 에러 은닉 장치.
  19. 제18항에 있어서,
    은닉 방향성 표시기를 생성하기 위해서 상기 가중된 벡터들을 결합하는 수단을 더 포함하는 공간 에러 은닉 장치.
  20. 제19항에 있어서,
    선택된 은닉 모드 표시기로 상기 은닉 방향성 표시기를 양자화하는 수단을 더 포함하는 공간 에러 은닉 장치.
  21. 제15항에 있어서,
    은닉 계수들을 제로로 설정하는 수단을 더 포함하는 공간 에러 은닉 장치.
  22. 적어도 하나의 프로세서에 의해 실행되는 경우, 공간 에러 은닉을 제공하도록 동작하는 명령들을 포함하는 컴퓨터-판독가능한 매체로서,
    손상된 매크로블록을 검출하는 명령;
    하나 이상의 이웃 매크로블록들과 관련된 코딩된 매크로블록 파라미터들을 획득하는 명령;
    상기 코딩된 매크로블록 파라미터들에 기반하여 은닉(concealment) 파라미터들을 생성하는 명령; 및
    상기 은닉 파라미터들을 비디오 디코딩 시스템에 삽입하는 명령을 포함하며,
    상기 코딩된 매크로블록 파라미터들은 방향성(directivity) 모드 표시기를 포함하는, 컴퓨터-판독가능 매체.
  23. 제15항에 있어서,
    상기 하나 이상의 이웃 매크로블록들 각각과 관련된 방향성 특성을 결정하는 명령을 더 포함하는 컴퓨터-판독가능 매체.
  24. 제16항에 있어서,
    상기 방향성 특성을 위한 단위 벡터들을 결정하는 명령을 더 포함하는 컴퓨터-판독가능 매체.
  25. 제17항에 있어서,
    가중된 벡터들을 생성하기 위해서 상기 하나 이상의 이웃들 각각과 관련된 예측 품질 특성에 기반하여 상기 단위 벡터들 각각에 가중치를 할당하는 명령을 더 포함하는 컴퓨터-판독가능 매체.
  26. 제18항에 있어서,
    은닉 방향성 표시기를 생성하기 위해서 상기 가중된 벡터들을 결합하는 명령을 더 포함하는 컴퓨터-판독가능 매체.
  27. 제19항에 있어서,
    선택된 은닉 모드 표시기로 상기 은닉 방향성 표시기를 양자화하는 명령을 더 포함하는 컴퓨터-판독가능 매체.
  28. 제15항에 있어서,
    은닉 계수들을 제로로 설정하는 명령을 더 포함하는 컴퓨터-판독가능 매체.
  29. 손상된 매크로블록을 검출하는 단계;
    하나 이상의 이웃 매크로블록들과 관련된 코딩된 매크로블록 파라미터들을 획득하는 단계;
    상기 코딩된 매크로블록 파라미터들에 기반하여 은닉 파라미터들을 생성하는 단계; 및
    상기 은닉 파라미터들을 비디오 디코딩 시스템에 삽입하는 단계를 포함하는 공간 에러 은닉을 위한 방법을 수행하도록 구성되며,
    상기 코딩된 매크로블록 파라미터들은 방향성(directivity) 모드 표시기를 포함하는, 적어도 하나의 프로세서.
  30. 제29항에 있어서,
    상기 방법은 상기 하나 이상의 이웃 매크로블록들 각각과 관련된 방향성(directivity) 특성을 결정하는 단계를 더 포함하는 적어도 하나의 프로세서.
  31. 제30항에 있어서,
    상기 방법은 상기 방향성 특성을 위한 단위 벡터들을 결정하는 단계를 더 포함하는 적어도 하나의 프로세서.
  32. 제31항에 있어서,
    상기 방법은 가중된 벡터들을 생성하기 위해서 상기 하나 이상의 이웃들 각각과 관련된 예측 품질 특성에 기반하여 상기 단위 벡터들 각각에 가중치를 할당하는 단계를 더 포함하는 적어도 하나의 프로세서.
  33. 제32항에 있어서,
    상기 방법은 은닉 방향성 표시기(indicator)를 생성하기 위해서 상기 가중된 벡터들을 결합하는 단계를 더 포함하는 적어도 하나의 프로세서.
  34. 제33항에 있어서,
    상기 방법은 선택된 은닉 모드 표시기로 상기 은닉 방향성 표시기를 양자화하는 단계를 더 포함하는 적어도 하나의 프로세서.
  35. 제29항에 있어서,
    상기 생성 단계는 은닉 계수들을 제로(zero)로 설정하는 단계를 더 포함하는 적어도 하나의 프로세서.
  36. 공간 에러 은닉을 위한 방법으로서,
    손상된 매크로블록을 검출하는 단계;
    하나 이상의 넌-코절(non-causal) 이웃 매크로블록들과 관련된 코딩된 매크로블록 파라미터들을 획득하는 단계;
    상기 코딩된 매크로블록 파라미터들에 기반하여 은닉(concealment) 파라미터들을 생성하는 단계; 및
    상기 은닉 파라미터들을 비디오 디코딩 시스템에 삽입하는 단계를 포함하며,
    상기 코딩된 매크로블록 파라미터들은 방향성(directivity) 모드 표시기를 포함하는, 공간 에러 은닉 방법.
KR1020077003530A 2004-07-15 2005-07-15 인트라-예측 방향에 기반한 h.264 공간 에러 은닉 방법 및장치 KR100871646B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US58848304P 2004-07-15 2004-07-15
US60/588,483 2004-07-15

Publications (2)

Publication Number Publication Date
KR20070040394A KR20070040394A (ko) 2007-04-16
KR100871646B1 true KR100871646B1 (ko) 2008-12-02

Family

ID=35063414

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077003530A KR100871646B1 (ko) 2004-07-15 2005-07-15 인트라-예측 방향에 기반한 h.264 공간 에러 은닉 방법 및장치

Country Status (8)

Country Link
US (1) US20060013320A1 (ko)
EP (1) EP1779673A1 (ko)
JP (1) JP2008507211A (ko)
KR (1) KR100871646B1 (ko)
CN (1) CN101019437B (ko)
CA (1) CA2573990A1 (ko)
TW (1) TW200627967A (ko)
WO (1) WO2006020019A1 (ko)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008508787A (ja) * 2004-07-29 2008-03-21 トムソン ライセンシング インター符号化系列向けのエラー隠蔽技術
US20060045190A1 (en) * 2004-09-02 2006-03-02 Sharp Laboratories Of America, Inc. Low-complexity error concealment for real-time video decoder
ZA200703153B (en) * 2004-10-18 2008-08-27 Thomson Licensing Film grain simulation method
CA2587095C (en) * 2004-11-12 2015-01-20 Thomson Licensing Film grain simulation for normal play and trick mode play for video playback systems
JP4950059B2 (ja) 2004-11-16 2012-06-13 トムソン ライセンシング 映像システムにおけるビットアキュレートシミュレーションのためのフィルムグレインseiメッセージ挿入
US7738561B2 (en) * 2004-11-16 2010-06-15 Industrial Technology Research Institute MPEG-4 streaming system with adaptive error concealment
BRPI0517743B1 (pt) 2004-11-16 2017-06-27 Thomson Licensing Method and apparatus for creating a film granulation block
US8483288B2 (en) * 2004-11-22 2013-07-09 Thomson Licensing Methods, apparatus and system for film grain cache splitting for film grain simulation
JP4680608B2 (ja) * 2005-01-17 2011-05-11 パナソニック株式会社 画像復号装置及び方法
US9154795B2 (en) * 2005-01-18 2015-10-06 Thomson Licensing Method and apparatus for estimating channel induced distortion
US8693540B2 (en) * 2005-03-10 2014-04-08 Qualcomm Incorporated Method and apparatus of temporal error concealment for P-frame
US7925955B2 (en) * 2005-03-10 2011-04-12 Qualcomm Incorporated Transmit driver in communication system
KR100941336B1 (ko) * 2005-03-10 2010-02-11 퀄컴 인코포레이티드 멀티미디어 스트리밍에서 최적화된 오류 관리를 위한디코더 아키텍쳐
US8948246B2 (en) * 2005-04-11 2015-02-03 Broadcom Corporation Method and system for spatial prediction in a video encoder
US9055298B2 (en) * 2005-07-15 2015-06-09 Qualcomm Incorporated Video encoding method enabling highly efficient partial decoding of H.264 and other transform coded information
KR100725407B1 (ko) * 2005-07-21 2007-06-07 삼성전자주식회사 방향적 인트라 잔차 예측에 따라 비디오 신호를 인코딩하고디코딩하는 방법 및 장치
US8605797B2 (en) * 2006-02-15 2013-12-10 Samsung Electronics Co., Ltd. Method and system for partitioning and encoding of uncompressed video for transmission over wireless medium
KR101330630B1 (ko) 2006-03-13 2013-11-22 삼성전자주식회사 최적인 예측 모드를 적응적으로 적용하여 동영상을부호화하는 방법 및 장치, 동영상을 복호화하는 방법 및장치
EP2008468B1 (en) * 2006-04-20 2012-06-13 Thomson Licensing Method and apparatus for redundant video coding
DE102007035204A1 (de) * 2006-07-28 2008-02-07 Mediatek Inc. Videoverarbeitungs- und - betriebsvorrichtung
US8238442B2 (en) * 2006-08-25 2012-08-07 Sony Computer Entertainment Inc. Methods and apparatus for concealing corrupted blocks of video data
KR100862662B1 (ko) * 2006-11-28 2008-10-10 삼성전자주식회사 프레임 오류 은닉 방법 및 장치, 이를 이용한 오디오 신호복호화 방법 및 장치
US8340183B2 (en) * 2007-05-04 2012-12-25 Qualcomm Incorporated Digital multimedia channel switching
US10715834B2 (en) 2007-05-10 2020-07-14 Interdigital Vc Holdings, Inc. Film grain simulation based on pre-computed transform coefficients
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8842739B2 (en) * 2007-07-20 2014-09-23 Samsung Electronics Co., Ltd. Method and system for communication of uncompressed video information in wireless systems
US8243823B2 (en) * 2007-08-29 2012-08-14 Samsung Electronics Co., Ltd. Method and system for wireless communication of uncompressed video information
US8121189B2 (en) 2007-09-20 2012-02-21 Microsoft Corporation Video decoding using created reference pictures
JP2009081576A (ja) * 2007-09-25 2009-04-16 Toshiba Corp 動画像復号装置、および動画像復号方法
CN101272490B (zh) * 2007-11-23 2011-02-02 成都三泰电子实业股份有限公司 具有相同背景的视频图像中出错宏块处理方法
US20090225867A1 (en) * 2008-03-06 2009-09-10 Lee Kun-Bin Methods and apparatus for picture access
JP2009260941A (ja) * 2008-03-21 2009-11-05 Nippon Telegr & Teleph Corp <Ntt> 映像品質客観評価方法、映像品質客観評価装置、及びプログラム
US9848209B2 (en) 2008-04-02 2017-12-19 Microsoft Technology Licensing, Llc Adaptive error detection for MPEG-2 error concealment
US9924184B2 (en) 2008-06-30 2018-03-20 Microsoft Technology Licensing, Llc Error detection, protection and recovery for video decoding
US9788018B2 (en) 2008-06-30 2017-10-10 Microsoft Technology Licensing, Llc Error concealment techniques in video decoding
JP4995789B2 (ja) * 2008-08-27 2012-08-08 日本電信電話株式会社 画面内予測符号化方法,画面内予測復号方法,これらの装置,およびそれらのプログラム並びにプログラムを記録した記録媒体
US9131241B2 (en) 2008-11-25 2015-09-08 Microsoft Technology Licensing, Llc Adjusting hardware acceleration for video playback based on error detection
US8687685B2 (en) 2009-04-14 2014-04-01 Qualcomm Incorporated Efficient transcoding of B-frames to P-frames
US9369759B2 (en) 2009-04-15 2016-06-14 Samsung Electronics Co., Ltd. Method and system for progressive rate adaptation for uncompressed video communication in wireless systems
JP5169978B2 (ja) * 2009-04-24 2013-03-27 ソニー株式会社 画像処理装置および方法
US8340510B2 (en) 2009-07-17 2012-12-25 Microsoft Corporation Implementing channel start and file seek for decoder
CN102088613B (zh) * 2009-12-02 2013-03-20 宏碁股份有限公司 图像修复方法
KR20110068792A (ko) * 2009-12-16 2011-06-22 한국전자통신연구원 적응적 영상 부호화 장치 및 방법
CN102972028B (zh) * 2010-05-17 2015-08-12 Lg电子株式会社 新的帧内预测模式
JP5798556B2 (ja) * 2010-07-15 2015-10-21 シャープ株式会社 復号装置、符号化装置
US11284072B2 (en) 2010-08-17 2022-03-22 M&K Holdings Inc. Apparatus for decoding an image
PT3125561T (pt) * 2010-08-17 2018-05-08 M&K Holdings Inc Método para restaurar um modo de previsão intra
US8976873B2 (en) * 2010-11-24 2015-03-10 Stmicroelectronics S.R.L. Apparatus and method for performing error concealment of inter-coded video frames
US9258573B2 (en) * 2010-12-07 2016-02-09 Panasonic Intellectual Property Corporation Of America Pixel adaptive intra smoothing
US9706214B2 (en) 2010-12-24 2017-07-11 Microsoft Technology Licensing, Llc Image and video decoding implementations
CN102595124B (zh) * 2011-01-14 2014-07-16 华为技术有限公司 图像编码解码方法、处理图像数据方法及其设备
CN102685506B (zh) * 2011-03-10 2015-06-17 华为技术有限公司 帧内预测的方法和预测装置
US9025672B2 (en) * 2011-05-04 2015-05-05 Cavium, Inc. On-demand intra-refresh for end-to end coded video transmission systems
US9549183B2 (en) * 2011-05-12 2017-01-17 Thomson Licensing Method and device for estimating video quality on bitstream level
KR101383775B1 (ko) 2011-05-20 2014-04-14 주식회사 케이티 화면 내 예측 방법 및 장치
KR101539312B1 (ko) * 2011-05-27 2015-07-24 미디어텍 인크. 비디오 프로세싱에 대한 라인 버퍼 감소를 위한 방법 및 장치
US9516349B2 (en) * 2011-07-12 2016-12-06 Futurewei Technologies, Inc. Pixel-based intra prediction for coding in HEVC
GB2492812B (en) * 2011-07-13 2014-10-22 Canon Kk Error concealment method for wireless communications
US20130083846A1 (en) * 2011-09-29 2013-04-04 JVC Kenwood Corporation Image encoding apparatus, image encoding method, image encoding program, image decoding apparatus, image decoding method, and image decoding program
WO2013067436A1 (en) 2011-11-04 2013-05-10 Huawei Technologies Co., Ltd. Binarization of prediction residuals for lossless video coding
US9819949B2 (en) 2011-12-16 2017-11-14 Microsoft Technology Licensing, Llc Hardware-accelerated decoding of scalable video bitstreams
TWI603611B (zh) * 2011-12-21 2017-10-21 Jvc Kenwood Corp Motion picture encoding apparatus, motion picture encoding method, and recording medium for moving picture encoding program
EP2611186A1 (en) 2011-12-30 2013-07-03 British Telecommunications Public Limited Company Assessing packet loss visibility in video
WO2013155662A1 (en) * 2012-04-16 2013-10-24 Mediatek Singapore Pte. Ltd. Methods and apparatuses of simplification for intra chroma lm mode
EP2839639A4 (en) * 2012-04-19 2016-01-06 Intel Corp THREE-DIMENSIONAL VIDEO CODING (3D) INCLUDING DEPARTIVITY VECTOR CALIBRATION BASED ON DEPTH
AU2013202653A1 (en) * 2013-04-05 2014-10-23 Canon Kabushiki Kaisha Method, apparatus and system for generating intra-predicted samples
US9872046B2 (en) 2013-09-06 2018-01-16 Lg Display Co., Ltd. Apparatus and method for recovering spatial motion vector
CN103780913B (zh) * 2014-01-24 2017-01-04 西安空间无线电技术研究所 一种基于误差隐藏的数据压缩方法
CN107734333A (zh) * 2017-09-29 2018-02-23 杭州电子科技大学 一种利用生成网络提高视频错误隐藏效果的方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5243428A (en) * 1991-01-29 1993-09-07 North American Philips Corporation Method and apparatus for concealing errors in a digital television
US5624467A (en) * 1991-12-20 1997-04-29 Eastman Kodak Company Microprecipitation process for dispersing photographic filter dyes
US5621467A (en) * 1995-02-16 1997-04-15 Thomson Multimedia S.A. Temporal-spatial error concealment apparatus and method for video signal processors
US6046784A (en) * 1996-08-21 2000-04-04 Daewoo Electronics Co., Ltd. Method and apparatus for concealing errors in a bit stream
KR100196840B1 (ko) * 1996-12-27 1999-06-15 전주범 영상복호화시스템에 있어서 비트에러복원장치
US6539120B1 (en) * 1997-03-12 2003-03-25 Matsushita Electric Industrial Co., Ltd. MPEG decoder providing multiple standard output signals
US6404817B1 (en) * 1997-11-20 2002-06-11 Lsi Logic Corporation MPEG video decoder having robust error detection and concealment
JP4010066B2 (ja) * 1998-11-09 2007-11-21 ソニー株式会社 画像データ記録装置および記録方法、並びに画像データ記録再生装置および記録再生方法
US6721362B2 (en) * 2001-03-30 2004-04-13 Redrock Semiconductor, Ltd. Constrained discrete-cosine-transform coefficients for better error detection in a corrupted MPEG-4 bitstreams
JP2003304404A (ja) * 2002-04-09 2003-10-24 Canon Inc 画像符号化装置
AU2003248908A1 (en) * 2003-01-10 2004-08-10 Thomson Licensing S.A. Spatial error concealment based on the intra-prediction modes transmitted in a coded stream
WO2004064406A1 (en) * 2003-01-10 2004-07-29 Thomson Licensing S.A. Defining interpolation filters for error concealment in a coded image
US7606313B2 (en) * 2004-01-15 2009-10-20 Ittiam Systems (P) Ltd. System, method, and apparatus for error concealment in coded video signals
US7869503B2 (en) * 2004-02-06 2011-01-11 Apple Inc. Rate and quality controller for H.264/AVC video coder and scene analyzer therefor
US8670437B2 (en) * 2005-09-27 2014-03-11 Qualcomm Incorporated Methods and apparatus for service acquisition
US9258519B2 (en) * 2005-09-27 2016-02-09 Qualcomm Incorporated Encoder assisted frame rate up conversion using various motion models
US20070076796A1 (en) * 2005-09-27 2007-04-05 Fang Shi Frame interpolation using more accurate motion information
US8446954B2 (en) * 2005-09-27 2013-05-21 Qualcomm Incorporated Mode selection techniques for multimedia coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ELSEVIER 논문

Also Published As

Publication number Publication date
EP1779673A1 (en) 2007-05-02
US20060013320A1 (en) 2006-01-19
WO2006020019A9 (en) 2006-05-11
JP2008507211A (ja) 2008-03-06
KR20070040394A (ko) 2007-04-16
CN101019437A (zh) 2007-08-15
TW200627967A (en) 2006-08-01
WO2006020019A1 (en) 2006-02-23
CA2573990A1 (en) 2006-02-23
CN101019437B (zh) 2011-08-03

Similar Documents

Publication Publication Date Title
KR100871646B1 (ko) 인트라-예측 방향에 기반한 h.264 공간 에러 은닉 방법 및장치
RU2770185C2 (ru) Множество кандидатов предсказателя для компенсации движения
CN113574898B (zh) 自适应环路滤波器
US6115503A (en) Method and apparatus for reducing coding artifacts of block-based image encoding and object-based image encoding
KR101808327B1 (ko) 영상 코덱에서 패딩을 이용한 영상 부/복호화 방법 및 장치
CN111819853A (zh) 变换域中预测的信令残差符号
JPH09247681A (ja) 動画像復号方法および動画像復号装置
CN108028942A (zh) 编码方法、解码方法及其装置
CN103348651A (zh) 具有降低复杂性的变换单元分割的方法及装置
ZA200205506B (en) A method for encoding images, and an image coder.
WO2007108642A1 (en) Image encoding/decoding method and apparatus
JP7413552B2 (ja) デコーダが実行するビデオデコーディングの方法、装置、及びプログラム、並びにエンコーダが実行するビデオコーディングの方法
US9432694B2 (en) Signal shaping techniques for video data that is susceptible to banding artifacts
CN118200538A (zh) 图像编码/解码方法、存储介质和传输比特流的方法
US20230396780A1 (en) Illumination compensation method, encoder, and decoder
JP2023520197A (ja) ビデオコーティングのための方法、及び装置
CN116711304A (zh) 预测方法、编码器、解码器以及存储介质
WO2024104503A1 (zh) 图像编解码
JP7443527B2 (ja) ビデオコーディングのための方法、装置及びプログラム
WO2023123495A1 (zh) 预测方法、装置、设备、系统、及存储介质
WO2023193724A1 (en) Method, apparatus, and medium for video processing
KR20100097387A (ko) 고속 움직임 추정을 위한 부분 블록정합 방법
Lee et al. Information re-use and edge detection in intra mode prediction
CN117044203A (zh) 用于一维变换跳过的eob的信令
KR20180121340A (ko) 압축 영역에서 야간 영상의 장면 전환 검출 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20111028

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee