KR20090075686A - 복잡도 인식 인코딩 - Google Patents

복잡도 인식 인코딩 Download PDF

Info

Publication number
KR20090075686A
KR20090075686A KR1020097007296A KR20097007296A KR20090075686A KR 20090075686 A KR20090075686 A KR 20090075686A KR 1020097007296 A KR1020097007296 A KR 1020097007296A KR 20097007296 A KR20097007296 A KR 20097007296A KR 20090075686 A KR20090075686 A KR 20090075686A
Authority
KR
South Korea
Prior art keywords
data set
encoding
target decoder
complexity
target
Prior art date
Application number
KR1020097007296A
Other languages
English (en)
Other versions
KR101103187B1 (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 KR20090075686A publication Critical patent/KR20090075686A/ko
Application granted granted Critical
Publication of KR101103187B1 publication Critical patent/KR101103187B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/127Prioritisation of hardware or computational resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164Feedback from the receiver or from the transmission channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

인코딩된 데이터의 디코딩 복잡도, 및 인코딩된 데이터를 디코딩하기 위한 타겟 디코더의 능력에 대한 인식에 적어도 부분적으로 기초하여 데이터를 인코딩하기 위한 기술들이 개시된다. 일부 실시예들에서, 인코딩된 데이터 세트가 제공될 타겟 디코더의 상태에 적어도 부분적으로 기초하여 데이터 세트가 인코딩된다. 일부 실시예들에서는, 인코딩된 데이터 세트가 제공될 다수의 디코더들의 상태들에 적어도 부분적으로 기초하여 데이터 세트가 인코딩된다.
인코딩, 디코딩, 디코딩 복잡도, 타겟 디코더의 상태, 코덱

Description

복잡도 인식 인코딩{COMPLEXITY-AWARE ENCODING}
일반적으로, 인코더에서 비디오 시퀀스의 프레임들 등의 데이터에 대한 하나 이상의 인코딩 스킴(encoding scheme)을 선택하는 것은, 특정 인코딩 판정 및/또는 판정 시퀀스들이, 인코딩된 데이터를 디코딩하는 데에 이용되고 있고/있거나 이용될 디코더의 동적 상태에 미치게 될 영향을 인식하거나 혹은 고려하지 않고 결정된다. 가장 통상적으로는, 특정 디코더의 동적 상태, 및 적절한 디코딩이 지정되는 것을 보장하기 위한 최소 디코더 및/또는 디코딩 시스템 요건에 대한 영향은 고려하지 않고, 왜곡에 대하여 데이터 전송 레이트의 균형을 맞추는 방식으로 데이터가 인코딩되어서, 본질적으로, 최소 요건을 만족시키는 디코더들을 갖는 사용자들에 대한 이용을 제한하게 된다. 이에 따라, 인코딩된 데이터의 하나 이상의 부분에 대한 디코딩이, 특정 디코더에서 이용가능한 디코딩 자원들에 의해 적절히 핸들링될 수 없는 경우, 디코딩 성능의 저하 및 재생 품질 손상을 겪을 수 있다. 인코딩된 데이터에 대한 디코딩이, 디코더에서의 디코딩 능력 및 자원들 내에서 이루어지는 것이 바람직할 것이다.
따라서, 타겟 디코더들에 대한 지식에 기초하여 데이터를 인코딩하는 개선된 방식이 필요하다.
도 1a는 일반적인 코덱(codec)의 실시예를 나타낸 도면.
도 1b는 데이터가 서로 다른 인코딩 스킴들로 인코딩되는 코덱의 일 실시예를 나타낸 도면.
도 2는 데이터를 인코딩하기 위한 프로세스의 일 실시예를 나타낸 도면.
도 3은 비디오 데이터를 인코딩하기 위한 프로세스의 일 실시예를 나타낸 도면.
도 4는 비디오 데이터의 프레임에 대한 인코딩 스킴을 판정하기 위한 프로세스의 일 실시예를 나타낸 도면.
도 5는 프레임을 인코딩하기 위한 프로세스의 일 실시예를 나타낸 도면.
도 6은 프레임에 대한 인코딩 스킴, 및 관련 코스트(cost) 혹은 그 프레임의 복잡도를 판정하기 위한 프로세스의 일 실시예를 나타낸 도면.
도 7은 프레임의 인코딩에 이용되는 툴셋(toolset)을 조정하기 위한 프로세의 일 실시예를 나타낸 도면.
도 8은 하나 이상의 프레임을 사전 처리하기 위한 프로세스의 일 실시예를 나타낸 도면.
도 9는 인코딩된 프레임의 디코딩을 타겟 디코더에서 적절하게 저하(degrading)시키기 위한 프로세스의 일 실시예를 나타낸 도면.
본 발명의 각종 실시예들에 대해서는 이하의 상세한 설명 및 첨부 도면들에 개시되어 있다.
본 발명은, 프로세스, 장치, 시스템, 합성물(composition of matter), 컴퓨터 판독가능 저장 매체 등의 컴퓨터 판독가능 매체, 혹은 프로그램 명령어들이 광 혹은 전자 통신 링크들을 통해 전송되는 컴퓨터 네트워크를 비롯한 수많은 방식으로 구현될 수 있다. 본 명세서에서는, 이들 구현들, 혹은 본 발명이 취할 수 있는 임의의 다른 형태들이 기술들로서 칭해질 수 있다. 태스크를 수행하도록 구성된 것으로 기술되는 프로세서 혹은 메모리 등의 컴포넌트는, 주어진 시간에서 그 태스크를 수행하도록 일시적으로 구성된 일반적 컴포넌트, 혹은 그 태스크를 수행하도록 제조된 특정 컴포넌트 양쪽 모두를 포함한다. 일반적으로, 개시된 프로세스들의 단계들의 순서는 본 발명의 범주 내에서 변경될 수 있다.
이하, 본 발명의 원리들을 예시하는 첨부 도면들과 함께 본 발명의 하나 이상의 실시예들에 대한 상세한 설명이 제공된다. 본 발명은 이러한 실시예들과 관련하여 기술되지만, 본 발명은 어떠한 실시예에도 제한되지 않는다. 본 발명의 범주는 특허청구범위에 의해서만 제한되며, 본 발명은 수많은 대체, 변경 및 등가물을 포함한다. 본 발명의 철저한 이해를 돕기 위해 이하의 설명에서는 수많은 특정 상세사항들이 제시된다. 이들 상세사항들은 예시를 위한 것이며, 본 발명은 이들 특정 상세사항들의 일부 혹은 전부 없이도 특허청구범위에 따라 실시될 수 있다. 명확성을 위해, 본 발명이 불필요하게 불명확하게 되지 않도록, 본 발명과 관련된 기술 분야에 공지된 기술 자료는 상세히 기술하지 않았다.
인코딩된 데이터의 디코딩 복잡도, 및 인코딩된 데이터를 디코딩하기 위한 타겟 디코더의 능력에 대한 인식에 적어도 부분적으로 기초하여 데이터를 인코딩하기 위한 기술들이 개시된다. 일부 실시예들에서는, 인코딩된 데이터 세트가 제공될 타겟 디코더의 상태에 적어도 부분적으로 기초하여 데이터 세트가 인코딩된다. 일부 실시예들에서는, 인코딩된 데이터 세트가 제공될 다수의 디코더들의 상태들에 적어도 부분적으로 기초하여 데이터 세트가 인코딩된다.
도 1a는 일반적인 코덱의 실시예를 나타낸 도면이다. 도시된 바와 같이, 인코더(102)는, 오디오, 비디오, 오디오비쥬얼(audiovisual), 및/또는 그 밖의 멀티미디어 컨텐트 등의 미디어 데이터를 인코딩하며, 인코딩된 데이터(104)를 하나 이상의 디코더(106)에 제공한다. 실시예에 따라, 인코딩된 데이터는 네트워크 혹은 그 밖의 통신 채널을 통해 제공되며; DVD 혹은 CD 등의 이동식 매체에 저장되며; 디지털 무선 브로드캐스트 혹은 무선 네트워크 접속 등과 같이 무선 주파수들을 통해 전송되며; 서버에 저장되며, PC, 휴대용 음악/비디오 재생기, 혹은 그 밖의 장치 상에서의 다운로드 및 후속 재생에 이용가능하게 되는 등의 작업이 행해진다. 디코더(106)에서, 인코딩된 데이터(104)는, 예를 들어 디스플레이, 재생, 편집 등을 위해 인코딩된 내용을 복구하도록 디코딩된다. 주어진 예에서 나타낸 바와 같이, 인코딩된 데이터(104)를, 핸드헬드 컴퓨팅 디바이스들, 랩탑들, 데스크탑들, 셋탑 박스들, mp3 플레이어들 등의 잠재적으로 서로 다른 유형의 디바이스들 상의 복수의 디코더들(106)에 제공하는 것이 바람직할 수 있다. 그러나, 디코딩에 이용가능한 자원들은, 서로 다른 유형들의 디바이스들 및 서로 다른 유형들의 디코더들에 따라 달라질 수 있다. 이용가능한 처리 속도, 전력 소비 제한, 이용가능한 메모리 등의 요인들, 디코더 아키텍처와 연관된 요인들(예를 들면, 가능한 동시 처리의 정도), 이용가능한 디코딩 알고리즘의 계산 복잡도 등이 각 디코더에서의 디코딩 성능에 영향을 미친다.
일반적으로, 인코더에서의 데이터의 인코딩은, 특정 인코딩 판정 및/또는 판정 시퀀스들이, 인코딩된 데이터를 디코딩하는 데에 이용되고 있고/있거나 이용될 디코더의 동적 상태에 미치게 될 영향을 고려하지 않고 판정된다. 특정 인코딩 스킴을 갖는 데이터는 일반적으로, 적절하게 인코딩된 데이터를 복원(uncompress)하도록 디코더 측에서 수행될 필요가 있는 최소 처리 요건들과 연관되어 있다. 디코더가 최소 처리 요건을 제공할 수 없는 경우, 이러한 디코더에서의 인코딩된 데이터의 디코딩은 전혀 가능하지 않을 수 있으며, 혹은 적어도 부분적으로 손상될 수 있는데, 예를 들면 수행되지 않는 하나 이상의 디코딩 동작으로 인해 디코더 출력의 품질이 영향을 받을 수 있으며, 디코더가 데이터를 드롭하거나 혹은 스킵하기 시작할 수도 있는 등의 일이 발생될 수 있다. 도 1a의 구성에서는, 동일한 인코딩이 행해진 데이터(104)가 복수의 디코더들(106)에 제공된다. 그러나, 데이터의 동일한 인코딩 스킴이 주어지는 경우, 서로 다른 디코더들(106)에 의한, 인코딩된 데이터(104)의 디코딩 방식 및 품질은, 각 디코더(106)에서의 디코딩 자원들의 이용가능성에 따라 달라질 수 있다.
타겟 디코더에서의 이용가능한 디코딩 자원들에 의해 적절하게 핸들링될 수 있는 인코딩 스킴을 갖는 인코딩된 데이터를 타겟 디코더에 제공하기 위해, 인코딩된 데이터가 제공될 타겟 디코더의 현재 및/또는 예상 상태에 대한 인식에 적어도 부분적으로 기초하여 인코더에서 데이터를 인코딩하는 것이 개시된다. 본원에 개시되는 바와 같이, 타겟 디코더의 동적(현재, 미래, 및/또는 예측) 상태에 대한 인코딩 판정의 영향을 고려하는 방식으로, 잠재적으로 서로 다른 디코딩 능력 및 자원을 갖는 각종 디바이스들이 데이터를 이용할 수 있게 하거나, 혹은 하나의 유형의 디코더가 데이터를 이용할 수 있게 하기 위해, 각 타겟 디코더에 대한 일부 실시예들에서는, 타겟 디코더에서 이용가능한 디코딩 자원들에 대한 인식에 적어도 부분적으로 기초하여 인코딩 판정이 행해진다. 일부 실시예들에서는, 인코딩된 데이터가 제공될 디코더의 과거, 현재, 미래, 및/또는 예측 상태에 적어도 부분적으로 기초하여 데이터를 인코딩함으로써, 타겟 디코더에서의 관련 디코딩 제약(constraints)에 여전히 따르면서, 타겟 디코더에서의 최적 혹은 최적에 가까운 디코딩 가능성이 실현될 수 있게 해주는 것에 의해 타겟 디코더에서의 디코딩 성능이 향상된다. 일부 실시예들에서는, 인코딩된 데이터가 제공될 디코더의 과거, 현재, 미래 및/또는 예측 상태에 적어도 부분적으로 기초하여 데이터를 인코딩함으로써, 타겟 디코더에서의 관련 디코딩 제약에 여전히 따르면서, 타겟 디코더에 대한 가장 관련성이 높은 인코딩 툴들의 선택 및/또는 커스터마이징(customization)을 통해 타겟 디코더에서의 디코딩 성능이 향상된다.
도 1b는, 서로 다른 인코딩 스킴들로 데이터가 인코딩되는 코덱의 일 실시예를 나타낸 도면이다. 도시된 바와 같이, 인코더(108)는, 잠재적으로 서로 다른 인코딩 스킴들을 갖는 인코딩된 데이터(110)를 디코더들(112)에 제공한다. 디코더(112)에서, 인코딩된 데이터(110)는, 예를 들어 디스플레이, 재생, 편집 등을 위해 인코딩된 내용을 복구하도록 디코딩된다. 일부 실시예들에서는, 데이터가 제공될 각 디코더에 대해, 커스터마이징된 인코딩 스킴이 인코더에 의해 선택된다. 일부 실시예들에서는, 데이터가 제공될 다수의 디코더들에 대해, 커스터마이징된 인코딩 스킴들이 인코더에 의해 선택된다. 이러한 커스터마이징된 인코딩 스킴들은, 디코더들이, 이용가능한 자원들에 따라 달라지는 서로 다른 디코딩 품질들을 얻을 수 있게 해준다. 일부 실시예들에서는, 소정의 인코딩 스킴 세트를 이용하여 다수의 방식으로 동일한 데이터가 인코더에서 인코딩되며, 특정 디코더에 대해 가장 적절한 인코딩 스킴을 이용하여 인코딩된 데이터가 그 디코더에 제공된다. 일부 실시예들에서는, 특정 타겟 디코더에 대해 인코더에서 선택된 인코딩 스킴은, 데이터가 타겟 디코더에 제공될 때 변경될 수 있으며, 예를 들어 디코딩을 위해 타겟 디코더에서 이용가능한 자원들과 연관된 모델에 기초한, 타겟 디코더의 추정되는 성능에 대한 인식, 타겟 디코더에서의 각종 디코딩 동작들을 수행하는 코스트, 타겟 디코더로부터의 그 현재 성능과 관련된 동적 피드백, 및 디코딩 능력에 대한 인식, 소정의 시간 프레임 혹은 윈도우 내에서 타겟 디코더에 이미 제공되었거나 혹은 제공될 필요가 있는 인코딩된 데이터의 디코딩 복잡도에 대한 인식, 타겟 디코더에 제공될 데이터의 내용의 복잡도에 대한 인식 등에 따라 달라질 수 있다. 의도된 타겟 디코더의 디코딩 능력 및 입력 데이터의 복잡도에 기초하여 데이터를 지능적으로 인코딩함으로써, 타겟 디코더의 디코딩 성능 및 품질을 최적화하는 것이 가능하게 된다.
일부 실시예들에서, 인코더(예를 들면, 도 1b의 108)는 프레임 단위로 비디오 데이터를 인코딩하며, 인코딩된 비디오 데이터(예를 들면, 도 1b의 110)를 타겟 디코더(예를 들면, 도 1b의 112)에 전송한다. 일부 실시예들에서는, 인코더(108)는, 프레임 단위로 비디오 데이터를 인코딩하며, 인코딩된 비디오 데이터(110)를 고정식(예를 들면, 서버) 및/또는 이동식(예를 들면, DVD, CD) 저장 매체에 저장하여서, 타겟 디코더(112)에 의해 후속하여(예를 들면, 다운로드 후에, 혹은 이동식 매체를, 타겟 디코더(112)와 연관된 드라이브 혹은, 그 밖의 다른 저장 매체 판독 디바이스에 삽입하는 것에 의해) 이용될 수 있게 해준다. 각 프레임의 인코딩 스킴은, 그 프레임의 장래의 디코딩시의 타겟 디코더의 예측 상태에 적어도 부분적으로 기초하여, 예를 들면 그 디코더의 모델과, 인코딩된 선행 프레임들의 디코딩 후의 그 예측 상태에 기초하여, 각각의 프레임에 대해 판정되거나 전송(예를 들면, 네트워크 혹은 그 밖의 다른 통신 채널을 통하여 브로드캐스트, 스트리밍)되는 인코딩된 데이터의 경우, 타겟 디코더에 의한 장래의 준비 및 사용을 위해 인코딩되어 서버 또는 이동식 매체에 저장되는 데이터의 경우, 인코딩된 데이터가 타겟 디코더에 전송될 때 인코더에서 변경될 수 있다. 일부 실시예들에서, 비디오 데이터를 포함하는 프레임들의 인코딩 스킴들은, 디코더 측에서의 비디오 데이터의 뷰잉 경험(viewing experience)을 최적화하도록 인코더에서 변경된다. 일부 실시예들에서는, 비디오 데이터를 포함하는 프레임들의 인코딩 스킴들은, 서로 다른 디코딩 자원들을 갖는 다수의 디코더들에서의 비디오 데이터의 뷰잉 경험을 최적화하도록 인코더에서 변경된다. 일부 실시예들에서, 비디오 데이터는, H.264 표준에 따라 인코더에 의해 인코딩된다. 본원에 개시되는 바와 같이, 일부 실시예들에서, H.264 인코딩된 비트 스트림에 대해 선택된 복잡도는, 일부 실시예들에서 복잡도 혹은 코스트 제약으로 표현되는, 타겟 디코더의 능력의 추정치에 적어도 부분적으로 기초한 것이다. 이러한 경우, 인코딩된 비트 스트림의 복잡도가 적절히 핸들링되고 타겟 디코더에 의해 잘 재생될 수 있도록 타겟 디코더와 연관된 복잡도 혹은 코스트 제약 측정을 이용하여 적절한 인코딩 스킴이 선택된다. 일부 실시예들에서, 프레임의 인코딩 스킴은, 필요한 경우, 예를 들면 타겟 디코더가 재생을 유지할 수 없을 때; 예를 들어 관련 디바이스 상에서 동시에 실행되는 다른 프로세스들로 인해, 디코딩에 이용가능한 처리 전력이 제한될 때; 처리 및/또는 배터리 전력이 타겟 디코더에서 절약될 것이 요구될 때, 타겟 디코더에서의 적절한 저하(graceful degradation)를 허용하는 확장성 층들(scalability layers)을 포함한다. 일부 실시예들에서는, 인코딩된 내용이 디코딩될 타겟 디바이스의 배터리 수명을 최대화하는 방식으로 내용이 인코더에서 인코딩된다. 이러한 인코딩 스킴은, 핸드헬드 디바이스들, mp3 플레이어들, 랩탑 컴퓨터들 등과 같은 휴대용 디바이스들의 경우 특히 유용하다.
(예를 들어, 비디오 내용의 시퀀스를 포함하는 각종 프레임들을 인코딩하는 관점에서의) 비디오 인코딩 및 H.264 표준이 종종 기술될 수 있지만, 본원에 개시되는 기술들은, 비디오 데이터의 인코딩 혹은 H.264 표준에 제한되지 않는다. 오히려, 본원에 개시되는 기술들은, 임의의 적절한 표준 혹은 프로토콜에 따라 인코딩되는 텍스트, 이미지, 그래픽, 애니메이션, 오디오, 비디오 등의, 임의의 유형의 내용, 데이터, 혹은 데이터 세트를 인코딩하는 데에 이용될 수 있다.
도 2는 데이터를 인코딩하기 위한 프로세스의 일 실시예를 나타낸 도면이다. 일부 실시예들에서, 프로세스(200)는, 타겟 디코더(112)에 대해 데이터(110)를 커스텀 인코딩(custom encode)하도록 인코더(108)에 의해 이용된다. 프로세스(200)는, 인코딩될 데이터 혹은 내용이 판정되는 단계 202에서 시작된다. 일부 실시예들에서, 단계 202에서의 데이터는 하나의 프레임의 비디오 데이터에 대응한다. 단계 204에서, 단계 202에서 판정된 데이터가, 특정 타겟 디코더에 의해, 인코딩된 데이터를 디코딩하는 추정 코스트에 적어도 부분적으로 기초하여 판정되는 방식으로 인코딩된다. 일부 실시예들에서, 단계 204에서는, 인코딩된 데이터의 디코딩 복잡도가, 판정된 타겟 복잡도를 초과하지 않도록 하는 방식으로 단계 202에서의 데이터에 대한 타겟 디코딩 복잡도를 판정하고 단계 202에서의 데이터를 인코딩하는 것을 포함한다. 각종 실시예들에서, 특정 프레임(혹은 그 밖의 다른 단위)에 대한 타겟 복잡도는, 예를 들어 디코더에서 이용가능한 디코딩 자원들 및/또는 선행 및/또는 후행 프레임들의 복잡도에 대한 인식에 기초하여, 추가의 복잡도를 핸들링하고 처리하기 위해, 동적으로 판정되고, 추정되고/추정되거나 예상되는 타겟 디코더의 상태 및/또는 공지되고, 추정되고/추정되거나 예상되는 타겟 디코더의 능력에 의해, 적어도 부분적으로 판정된다. 이어서 프로세스(200)가 종료된다. 비디오 인코딩의 경우, 일부 실시예들에서는, 프로세스(200)는, 인코딩되어 타겟 디코더에 제공될 각 프레임마다 반복된다.
타겟 디코더에서의 추정되는 디코딩 코스트는, 타겟 디코더에서의 디코딩 자원들의 유용성에 적어도 부분적으로 기초한다. 일부 실시예들에서, 프로세스(200)의 단계 204에서 인코딩 스킴은, 타겟 디코더에서 이 인코딩 스킴으로 인코딩된 데이터를 디코딩하는 코스트가, 타겟 디코더와 연관된 최대 디코딩 코스트 제약 내에 있게 되도록 선택되며, 이에 따라 인코딩된 데이터가, 이용가능한 디코딩 자원들을 이용하여 타겟 디코더에서 적절하게 디코딩될 수 있게 된다. 일부 실시예들에서, 타겟 디코더에 의해 적절히 핸들링될 수 있는 최대 디코딩 복잡도와 연관된 제약이, 적절한 인코딩 스킴을 판정하는 데에 이용된다. 복잡도 제약은, 디코딩 코스트 제약으로부터 적어도 부분적으로 도출될 수 있거나, 혹은 그 반대도 가능하다. 일부 실시예들에서, 타겟 디코더와 연관된 코스트 및/또는 복잡도 제약은, 고정된 값들이 아니며, 오히려 타겟 디코더에서의 디코딩 자원들의 실제 혹은 추정되는 유용성이 변함에 따라 변하는 동적인 양이다. "코스트 제약" 및 "복잡도 제약"이라는 용어들은, 종종 본원에서 상호교환가능하게 이용되며, 특정 타겟 디코더가 핸들링할 수 있거나 혹은 핸들링할 수 있을 것으로 예상되는 디코딩 복잡도의 정도에 대한 제약을 칭한다.
인코딩 스킴은, 하나 이상의 인코딩 툴 혹은 기술을 필요로 할 수 있다. 비디오 인코딩에 이용가능한 툴들은, 예를 들면, 프레임 유형, 모션 추정, 보간 위치, 모션 벡터 길이, 벡터 확산, 모션 보상, 인트라 예측(intra prediction), 상호 예측(inter prediction), 루프 필터링 등을 포함하며, 이러한 툴들과 연관된 동작들은, H.264 등의 표준에 의해 정의될 수 있다. 각 툴은 디코더 특정 복잡도(decoder specific complexity)와 연관되어 있다. 프레임을 인코딩하도록 선택되는 인코딩 툴들 외에도, 프레임의 복잡도는 또한, 선택되는 양자화 파라미터의 값과, 비트 파싱(bit parsing), 역변환 등과 같은 디코딩의 그 밖의 단계들 등의 그 밖의 다른 파라미터들에 따라 달라질 수 있다.
인코딩에 이용되는 툴들과 연관된 동작들은, 디코더 측에서의 대응 역 동작들(inverse operations)이, 인코딩과 연관된 동작들을 원 상태로 되돌리게 할 것을 요구할 수 있다. 이에 따라, 일부 실시예들에서는, 인코딩 스킴에 이용되는 각 툴 및/또는 파라미터가 디코딩 코스트 혹은 복잡도에 기여하고 있다. 일부 실시예들에서는, 디코더 특정 복잡도 코스트가, 각 인코딩 툴 또는 기술과 연관되어 있다. 각종 인코딩 툴들 및 기술들과 연관된 복잡도 코스트는, 서로 다른 타겟 디코더들마다 다를 수 있다. 일부 실시예들에서, 특정 타겟 디코더에 제공될 비디오 데이터의 프레임 등의 데이터 세트를 인코딩할 때 인코딩 툴 혹은 기술이 이용되거나 유발될 때마다, 이 툴 혹은 기술과 연관된 타겟 디코더 특정 복잡도 코스트가, 이러한 복잡도 코스트들의 현행 합계(running sum)에 추가된다. 이하에 보다 상세히 기술되는 바와 같이, 이러한 합계의 최종 값은, 인코딩된 프레임의 총 디코딩 복잡도의 측정치로서 기능할 수 있으며, 타겟 복잡도와 비교되어, 이것이 타겟 복잡도 내에 있는지 여부가 판정될 수 있으며, 타겟 복잡도 내에 있지 않는 경우, 이 프레임의 인코딩 스킴은, 인코딩된 프레임의 총 디코딩 복잡도가 타겟 복잡도 내에 있도록 변경될 수 있으며, 이에 따라 최종 인코딩된 프레임의 디코딩이 타겟 디코더에 의해 적절히 핸들링될 수 있다. 추정되는 총 디코딩 복잡도가 타겟 복잡도보다 더 낮은 경우, 더 나은 품질을 획득하는 데에 더 많은 인코딩 툴들이 이용될 수 있다.
일부 실시예들에서, 타겟 디코더의 성능은, 타겟 디코더의 모델로부터 인코더 측에서 적어도 부분적으로 추정된다. 이러한 모델은, 타겟 디코더의 행위가, 인코더 측에서 추정되거나 혹은 시뮬레이팅될 수 있게 해주어서, 인코딩될 임의의 주어진 데이터 세트, 예를 들면, 비디오 데이터의 프레임에 대해 적절한 인코딩 스킴이 선택될 수 있게 된다. 일부 실시예들에서, 이러한 모델은, 타겟 디코더에서 이용가능한 디코딩 자원들에 기초한 것이다. 하나 이상의 디코딩 자원의 유용성은 시간에 따라 변할 수 있다. 일부 이러한 경우, 하나 이상의 디코딩 자원의 유용성에 대한 동적 피드백이 타겟 디코더로부터 인코더에 제공될 수 있다. 디코딩 성능에 영향을 미칠 수 있는 자원들의 예에는, 타겟 디코더 및/또는 관련 디바이스의 이용가능한 디코딩 알고리즘, 이용가능한 디코딩 처리 속도, (예를 들어, 배터리 수명을 연장하기 위한) 전력 소비 제한, 이용가능한 메모리, 가능한 동시 처리의 정도가 포함되지만, 이에 제한되는 것은 아니다. 일부 실시예들에서, 타겟 디코더에 대한 모델에서는, 일정한 처리 레이트 혹은 일정한 복잡도 소비 레이트가 이용된다. 타겟 디코더에 이미 제공되었거나 혹은 제공될 필요가 있는 인코딩된 데이터의 복잡도에 대한 인식, 디코딩된 화상 버퍼(decoded picture buffer; DPB)의 최대 용량 및/또는 추정 혹은 실제 상태에 대한 인식, 타겟 디코더에 제공되는 프레임들의 디스플레이 지속기간에 대한 인식 등과 같은 그 밖의 다른 요인들이, 인코더 측에서 타겟 디코더의 성능을 시뮬레이션할 때의 각종 실시예들에서 이용된다.
전술한 바와 같이, 일부 실시예들에서의 타겟 디코더의 성능은, DPB의 최대 용량 및/또는 상태에 의해 적어도 부분적으로 특징지워진다. 디코더에서의 DPB는, 디코더가 디코딩은 하였지만 디스플레이는 되지 않은 프레임들을 유지한다. DPB는, 예를 들어, 유지할 수 있는 최대 데이터량, 유지할 수 있는 최대 디코딩된 프레임들의 수 등에 의해 측정될 수 있는 그의 깊이 혹은 용량에 의해 특징지워질 수 있다. 일부 실시예들에서 DPB의 상태에 대한 시뮬레이팅 인식 혹은 실제의 인식은, 인코더 측에서 적절한 인코딩 스킴을 선택하는 것을 돕는 데에 이용된다. 예를 들면, 인코더에서, 타겟 디코더의 DPB가 거의 비워진 것으로 판정되는 경우, 인코더에서는 후속 프레임들의 복잡도를 감소시키는 것이 바람직할 수 있다. 마찬가지로, 인코더에서, 타겟 디코더의 DPB가 거의 다 채워진 것으로 판정되는 경우, 인코더에서는 후속 프레임들에는 복잡도를 더욱 증가시켜서 더 나은 시각적 품질이 달성될 수 있게 하는 것이 바람직할 수 있다. 일부 실시예들에서, 타겟 디코더의 DPB의 현재 상태에 대한 인식은, 타겟 디코더와 연관된 모델을 이용하여 인코더에서의 시뮬레이션을 통하여 얻어진다. 이러한 시뮬레이션은, 디코딩 처리 레이트(즉, 프레임들이 디코딩되어서 DPB에 입력되는 레이트), DPB의 최대 용량, DPB에서의 각 프레임의 디스플레이 지속기간(즉, 프레임들이 디스플레이를 위해 DPB로부터 취해지는 레이트) 등과 같은 디코딩 자원들에 대한 인식 뿐만 아니라, 타겟 디코더에 제공되었고/제공되었거나 제공될 인코딩된 프레임들의 필요한 처리 시간 및 복잡도에 대한 인식 등의 다른 요인들도 이용할 수 있다. 일부 실시예들에서는, DPB의 상태(예를 들면, DPB가 실제로 현재 보유하고 있는 프레임들의 수)와 연관된 실시간 피드백이 타겟 디코더에 의해 인코더에 동적으로 제공되어서, 인코더에서의 인코딩 판정이, 타겟 디코더의 실제 성능에 적어도 부분적으로 기초할 수 있게 해준다.
일부 실시예들에서, 타겟 디코더의 모델은, 대응하는 인코딩 옵션 세트의 각 프레임마다의 선택을 돕기 위해 인코더 측에서 슬라이딩 윈도우를 통하여 이용되어서, 인코딩된 비디오 데이터의 비트 스트림 혹은 시퀀스에서의 복잡도 변동 및 품질 변동이, 타겟 디코더의 실제 및/또는 추정 성능에 기초하여 인코더에서 동적으로 제어될 수 있게 된다. 일부 실시예들에서, 이러한 타겟 디코더의 모델은, 디코딩 복잡도 코스트를, 프레임을 인코딩하는 데에 이용되는 인코딩 옵션 혹은 툴의 각 경우와 연관지우는 것을 포함하여서, 인코딩된 프레임의 총 복잡도가 판정되어서 타겟 디코더의 복잡도 제한 혹은 제약들과 비교될 수 있게 한다. 일부 실시예들에서는, 인코더에서의 타겟 디코더의 모델은, 인코딩될 각 프레임마다의 타겟 복잡도를 판정하는 데에 이용된다. 일부 실시예들에서는, 각 프레임마다의 고정된 타겟 복잡도 값이 타겟 디코더와 연관되며, 이는 타겟 디코더의 이용가능한 디코딩 자원들 혹은 능력들에 기초할 수 있다. 일부 실시예들에서는, 임의의 주어진 프레임에 대한 타겟 복잡도는 동적이며, 인코더에서 이용가능한 타겟 디코더의 모델을 통하여 타겟 디코더의 성능의 시뮬레이션을 통하여 판정되며, 타겟 디코더에서 이용가능한 디코딩 자원들 뿐만 아니라, 예를 들어 소정의 윈도우 혹은 시간 프레임 내에서 타겟 디코더에 이미 제공되었거나 혹은 제공될 것을 기다리는 인코딩된 데이터의 복잡도에도 의존할 수 있다. 일부 실시예들에서, 프레임에 대한 타겟 복잡도는, 현재의 프레임 및/또는 이전의 프레임들의 내용에 적어도 부분적으로 기초한 것이다. 일부 실시예들에서, 프레임에 대한 타겟 복잡도는, 비디오 데이터 시퀀스 내의 다른 프레임들에 대비한 그 프레임의 중요성 혹은 중요도에 적어도 부분적으로 기초한 것이다. 비디오 인코딩의 경우, 예를 들면, 일부 실시예들에서, 프레임 유형(예를 들면, 참조 프레임 혹은 비참조 프레임) 및 디스플레이 지속기간 등의 요인들이, 프레임의 중요도 및 이에 따른 프레임에 대한 타겟 복잡도를 판정할 때에 고려된다.
도 3은, 비디오 데이터를 인코딩하기 위한 프로세스의 일 실시예를 나타낸 도면이다. 일부 실시예들에서, 프로세스(300)는 도 2의 프로세스(200)의 단계 204에서 이용된다. 비디오 데이터의 프레임이 복수의 더 작은 컴포넌트들 혹은 유닛들, 예를 들면, 슬라이스들 및 매크로블럭들로 세분화될 수 있다. 일부 실시예들에서, 프로세스(300)에서처럼, 프레임의 인코딩은, 그 프레임을 포함하는 매크로블럭들을 개별적으로 인코딩하는 것을 포함한다. 프로세스(300)의 단계 302에서, 각 프레임에 대해, 인코딩된 프레임이 제공될 타겟 디코더에 의해 핸들링될 수 있는 원하는 총 프레임 복잡도 코스트가 달성되게 하는 방식으로, 프레임을 포함하는 각 매크로블럭에 대한 인코딩 툴 세트 및 기술들이 판정된다. 일부 실시예들에서는, 단계 302에서 매크로블럭들을 인코딩하는 데에 이용될 인코딩 툴들의 판정은, 최적 혹은 최적에 가까운 재생 품질이 타겟 디코더에서 얻어지도록, 전체적인 프레임의 인코딩의 복잡도가 이 프레임과 연관된 타겟 복잡도 제약에 있거나 혹은 제약 근처에 있게 되는 것을 보장하는 방식으로 행해진다. 단계 304에서, 각 프레임을 포함하는 매크로블럭들이 단계 302의 판정에 따라 인코딩되며, 프로세스(300)가 종료된다.
일부 실시예들에서, 인코더에서 이용가능한 인코딩 툴들 및 기술들 중 하나 이상이 툴셋을 정의하는 데에 이용된다. 일부 실시예들에서, 인코더는 이러한 툴셋들의 테이블 혹은 리스트를 포함하는데, 이들 각각은 인코더에서 이용가능한 인코딩 툴들 중 하나 이상을 포함한다. 일부 실시예들에서, 프레임에 대한 인코딩 스킴을 판정하는 데에 이용될 하나의 툴셋이 선택된다. 일부 실시예들에서는, 하나 이상의 이용가능 툴셋들을 이용한 한 번 이상의 반복 후에, 프레임에 대한 적절한 인코딩 스킴을 찾게 된다. 일부 실시예들에서, 특정 프레임을 인코딩하기 위한 특정 툴셋이 선택되면, 선택된 툴셋에서 이용가능한 인코딩 툴들 중 하나 이상만이, 프레임, 및 그 프레임을 포함하는 매크로블럭들을 인코딩하는 데에 이용될 수 있다. 이러한 경우, 일부 실시예들에서, 툴셋의 서브셋이 적절하게 선택되어서 각 매크로블럭을 인코딩하게 된다. 각 매크로블럭에 대한 툴셋으로부터 선택되는 인코딩 툴들의 서브셋은, 그 프레임을 포함하는 서로 다른 매크로블럭들마다 서로 다를 수 있으며, 매크로블럭의 내용 혹은 복잡도, 매크로블럭 및/또는 연관된 프레임의 상대적인 중요도, 그 프레임 내의 매크로블럭의 위치 등과 같은 요인들에 따라 달라질 수 있다. 서로 다른 툴셋들은, 포함되는 인코딩 툴들 및/또는 툴셋들 내에 포함되는 툴들과 연관된 복잡도 코스트 가중치에 의해 달라질 수 있다. 일부 실시예들에서, 툴셋 내에 포함되는 인코딩 툴들 각각은, 복잡도 코스트 가중치, 즉 인코딩 툴을 이용하는 것과 연관된 복잡도 코스트를 계산할 때 인코딩 툴의 디코더 특정 복잡도 코스트가 배가(multiply)될 팩터와 연관된다. 이러한 가중치는, 값비싼(즉, 더 높은 코스트의) 디코딩 동작에 반하여(against) 치우치도록 이용되어서, 프레임, 혹은 그 프레임을 포함하는 매크로블럭들을 인코딩할 때 그와 연관된 인코딩 기술들이 보다 드물게 이용되게 한다.
일부 실시예들에서, 인코더에서의 이용가능한 툴셋들은, 인코딩 품질, 각 툴셋에서 이용가능한 인코딩 툴들의 복잡도, 및/또는 툴들에 지정되는 가중치에 따라 등급이 매겨진다. 예를 들면, 일부 실시예들에서 허용가능한 인코딩 스킴이 우선 판정되도록 시도되는 인코더에서의 디폴트 툴셋이 인코더에서의 모든 이용가능한 인코딩 툴들을 포함하고, 동일한 디코딩 복잡도 코스트 가중치(예를 들면, 1)를 툴들 각각에 지정한다. 이러한 디폴트 툴셋에 기초하여 프레임에 대해 선택되는 인코딩 스킴이, 그 프레임의 타겟 복잡도 내에 해당되는 총 복잡도를 갖는 경우, 이 인코딩 스킴이 그 프레임을 인코딩하는 데에 이용된다. 그러나, 이러한 디폴트 툴셋에 기초하여 프레임에 대해 선택된 인코딩 스킴이, 그 프레임의 타겟 복잡도를 초과하는 총 복잡도를 갖는 경우, 타겟 복잡도 내에 있는 다른 인코딩 스킴이, 타겟 디코더에서의 프레임의 재생 및 최적의 디코딩을 보장하도록 결정된다. 이러한 경우, 적절한 인코딩 스킴, 즉 디코딩 복잡도가 프레임에 대한 타겟 복잡도 내에 있으며 최상의 가능한 품질을 달성하는 인코딩 스킴이 찾아질 때까지, 동일한 툴셋 및/또는 하나 이상의 다른 툴셋을 통한 한 번 이상의 반복이 수행될 필요가 있을 수 있다. 이러한 반복은, 적절한 인코딩 스킴이 효과적으로 찾아질 수 있도록 지능적으로 수행될 수 있다. 이러한 경우, 일부 실시예들에서, 디코딩 복잡도를 감소시키면서 인코딩의 품질을 최대화하기 위해, 주어진 프레임에서의 복잡도의 소스들(예를 들면, 디코딩 복잡도에 가장 크게 기여하고 있는 툴들)이 판정되어 프레임에 대한 툴셋을 지능적으로 선택하는 데에 이용된다. 인코딩의 복잡도를 감소시키기 위해, 더 높은 가중치를, 디코딩하기에 보다 비싼 툴들에 지정하는 툴셋이 선택되어서, 인코딩 스킴을 판정할 때 이러한 툴들이 덜 빈번하게 이용되게 한다. 예를 들면, 디폴트 툴셋이, 1의 동일한 복잡도 코스트 가중치를, 16×16 상호 예측 및 8×8 상호 예측 양쪽 모두에 지정할 수 있지만; 더 비싼 디코딩 기술에는 더 높은 가중치를 지정함으로써(예를 들면, 16×16 상호 예측에 1의 가중치가 지정될 수 있는 반면에 8×8 상호 예측에는 16의 가중치가 지정될 수 있음), 그 더 비싼 디코딩 기술에 페널티를 과할 수 있어서, 프레임 혹은 이 프레임을 포함하는 매크로블럭들의 인코딩 스킴을 판정할 때 이것이 덜 빈번하게 이용되게 한다.
일부 실시예들에서, 인코더에서의 이용가능한 툴셋들은 복잡도 코스트과 함께 관련 품질 측정치를 갖는다. 인코더는, 복잡도와 품질 간의 최적의 밸런스를 찾기 위한 툴셋들의 조합을 찾아낼 수 있다. 이러한 방법중 하나는, 복잡도가 품질 제약에 따라 최소화되거나, 혹은 보다 자연스럽게는, 왜곡이 복잡도 제약에 따라 최소화되는 고전적인 라그랑지 방법(Lagrangian method)이다.
일부 실시예들에서, 인코딩 툴들은, 최소 인코딩 규격을 유지하면서 디코딩 코스트를 최소화하여 타겟 디코더에서 적어도 최소 디코딩 품질이 얻어질 수 있게 하는 방식으로 매크로 블럭을 인코딩하기 위해 특정 툴셋으로부터 선택된다. 일부 실시예들에서, 매크로블럭 레벨에서의 툴셋으로부터의 인코딩 툴들의 선택은, 제약되지 않은 검색인데, 예를 들면 매크로블럭 레벨에서 복잡도 혹은 코스트 제약이 존재하지 않는다. 일부 실시예들에서, 각 매크로블럭은, 최적의 인코딩, 즉 최소 에러 인코딩을 발생시키는 특정 툴셋으로부터의 인코딩 툴들의 조합을 이용하여 인코딩된다.
전술한 바와 같이, 일부 실시예들에서 프레임의 총 복잡도는 또한, 그 프레임의 인코딩을 위해 선택되는 양자화 파라미터에 따라 달라진다. 일부 실시예들에서, 프레임, 혹은 프레임을 포함하는 매크로블럭들에 대한 적절한 인코딩 스킴을 판정하는 프로세스(예를 들면, 도 2의 프로세스(200) 혹은 도 3의 프로세스(300))는, 타겟 복잡도 이하의 총 디코딩 복잡도 값을 갖는 인코딩 스킴이 그 프레임에 대해 찾아질 때까지 하나 이상의 툴셋 및/또는 양자화 파라미터 값을 통하여 반복하는 것을 포함한다.
일부 실시예들에서, 매크로블럭에 대한 인코딩 툴들을 선택하는 것은, 이하와 같은 레이트-왜곡 최적화 공식(rate-distortion optimization formula)에 적어도 부분적으로 기초한다.
C = D + λR
여기서, C는 매크로블럭의 인코딩 코스트를 나타내며, D는 선택된 인코딩에 대한 매크로블럭의 왜곡을 나타내며, R은 매크로블럭을 인코딩하는 데에 이용되는 비트들의 레이트 혹은 수를 나타내며, λ는 왜곡(D)에 대한 레이트(R)의 가중화를 허용하는 팩터를 나타낸다. 일부 실시예들에서는, 이하와 같이, 주어진 타겟 디코더에 대해 각종 인코딩 툴들 및 기술들을 이용하는 디코딩 복잡도 코스트를 고려하는 수정된 버전의 레이트-왜곡 최적화 공식이 이용된다.
C = D + λR + αX
여기서, 추가의 항목 X는 특정 타겟 디코더에 대한 매크로블럭을 인코딩하는 데에 이용되는 인코딩 툴들의 누적 복잡도 코스트를 나타내며, α는, 레이트(R) 및 왜곡(D)에 대한 복잡도(X)의 가중화를 허용하는 팩터를 나타낸다. 일부 실시예들에서, X는, 인코딩에 선택되는 양자화 파라미터와 연관된 복잡도 코스트를 포함한다. 일부 실시예들에서는, X는 인코딩 스킴을 판정하는 데에 이용되는 특정 툴셋과 연관된 복잡도 코스트 가중치를 포함한다. 일부 실시예들에서, 수학식 1 및/또는 수학식 2는, 매크로블럭에 대한 모션 추정 검색 및/또는 모드 판정에 따라 사용된다. 일부 실시예들에서, 각 매크로블럭에서, 선택할 툴셋이 주어진 경우 왜곡, 레이트, 및/또는 복잡도 간의 최선의 트레이드-오프를 갖는 인코딩 모드를 찾아내는 것이 바람직하다. 일부 실시예들에서, 최소 코스트 C를 갖는 인코딩이 각 매크로블럭에서 바람직하며, 인코딩 툴들을 선택할 툴셋이 주어지는 경우 각 매크로블럭에서 반복적으로 찾아진다.
일부 실시예들에서, 프레임을 포함하는 모든 매크로블럭들의 코스트 함수들의 값들(예를 들면, 수학식 1 또는 2의 C)은 함께 합산되어, 선택된 인코딩 스킴(즉, 매크로블럭들 및 프레임에 대해 선택된 인코딩 툴들)으로 프레임을 인코딩하는 총 코스트 혹은 총 코스트의 일부를 나타내는 누적 값을 생성할 수 있다. 이러한 값은, 그 프레임에 대한 코스트 제약과 비교되어서, 이 인코딩 스킴이 허용가능한지와, 인코딩된 프레임이 제공될 타겟 디코더에 의해 적절하게 핸들링될 수 있을지 여부를 판정한다. 일부 실시예들에서는, 모든 매크로블럭들의 누적 복잡도 코 스트들(X)이 함께 합산되어서, 인코딩된 프레임의 총 디코딩 복잡도 코스트 혹은 총 디코딩 복잡도 코스트의 일부를 나타내는 또다른(혹은 다른) 누적 값을 생성하며, 이러한 값은 그 프레임에 대해 판정된 타겟 디코딩 복잡도와 비교되어, 인코딩 스킴이 허용가능한지와 타겟 디코더에 의해 적절하게 핸들링될 수 있는지 여부를 판정한다. 일부 실시예들에서, 프레임의 총 복잡도는 다음과 같이 계산된다.
Figure 112009021423735-PCT00001
여기서, Xframe은 프레임의 총 복잡도를 나타내며, i는 인코딩 툴(예를 들면, 프레임의 인코딩에 이용되는 선택된 툴셋 내의 툴)을 나타내며, N은 프레임의 인코딩에서 이용되는 서로 다른 인코딩 툴들의 총 수를 나타내며, ni는 인코딩 툴 i가 프레임의 인코딩에서 이용되는 횟수(예를 들면, 툴 i를 이용하는 매크로블럭들의 수)를 나타내며, Xi는 특정 타겟 디코더에 대한, 인코딩 툴 i에 대한 디코딩 복잡도 코스트를 나타낸다. 일부 실시예들에서, 수학식 3의 하나의 항목, 즉 i의 하나의 값은, 주어진 인코딩 스킴에 대해 선택된 양자화 파라미터와 연관된 복잡도 코스트에 대응한다. 일부 실시예들에서, 각 Xi는, 인코딩 스킴을 판정하는 데에 이용되는 특정 툴셋과 연관된 타겟 디코더 특정 복잡도 코스트 가중치를 포함한다.
도 4는 비디오 데이터의 프레임에 대한 인코딩 스킴을 판정하기 위한 프로세스의 일 실시예를 나타낸 도면이다. 일부 실시예들에서, 프로세스(400)는 도 3의 단계 302에서 이용된다. 프로세스(400)는, 인코딩될 필요가 있는 프레임이 판정되거나 혹은 수신되는 단계 402에서 시작된다. 단계 404에서, 단계 402에서의 프레임이 제공될 타겟 디코더의 현재 상태 혹은 성능이 판정된다. 일부 실시예들에서는, 단계 404에서는, 타겟 디코더와 연관된 모델의 시뮬레이션 및/또는, 디코딩을 위해 타겟 디코더에 이미 제공되었거나 혹은 제공될 필요가 있는 프레임들의 복잡도에 대한 인식에 적어도 부분적으로 기초하여 타겟 디코더의 현재 상태를 추정하는 것을 포함한다. 일부 실시예들에서는, 단계 404에서는, 타겟 디코더의 현재 상태 혹은 성능과 관련된 동적 피드백을 타겟 디코더로부터 수신하는 것을 포함한다. 일부 실시예들에서는, 단계 404에서는, 시뮬레이션을 통하여 타겟 디코더의 DPB의 상태를 판정하는 것을 포함한다. 일부 실시예들에서는, 단계 404에서는, 타겟 디코더로부터 DPB의 현재 상태에 관한 동적 피드백을 수신하고, 타겟 디코더의 현재 성능을 판정할 때 DPB의 실제 상태를 이용하는 것을 포함한다. 일부 실시예들에서는, 단계 402에서의 프레임이 디코딩될 때 타겟 디코더에서의 디코딩 자원들의 유용성을 추정하는 데에, 단계 404에서의 타겟 디코더의 현재 상태의 판정 및/또는 비디오 데이터 시퀀스에서의 다른 프레임들의 복잡도 및/또는 내용에 대한 인식이 이용된다.
단계 406에서, 단계 402에서의 프레임에 대한 타겟 복잡도가, 단계 404에서 판정된 타겟 디코더의 현재 상태에 적어도 부분적으로 기초하여 판정된다. 일부 실시예들에서, 단계 406에서의 타겟 복잡도의 판정은, 프레임이 타겟 디코더에서 판정될 것으로 예상되는 시기의, 타겟 디코더에서의 디코딩 자원들의 예상되는 유 용성에 적어도 부분적으로 기초한다. 일부 실시예들에서는, 단계 406에서 판정된 프레임의 타겟 복잡도는, 프레임의 내용의 복잡도에 적어도 부분적으로 기초한다. 일부 실시예들에서는, 단계 406에서 판정되는 타겟 복잡도는, 비디오 데이터의 연관 시퀀스에서의 다른 프레임들에 대한 프레임의 중요도에 적어도 부분적으로 기초한다. 예를 들면, 일부 실시예들에서는, 단계 406에서 판정되는 타겟 복잡도는, 프레임이 참조 프레임인지 혹은 비참조 프레임인지 여부에 적어도 부분적으로 기초한다. 일부 실시예들에서는, 단계 406에서 판정되는 타겟 복잡도는, 현재 프레임, 즉 단계 402에서 판정된 프레임 다음에 인코딩되어 타겟 디코더에 제공될 관련 비디오 시퀀스 내의 하나 이상의 후속 프레임의 내용의 복잡도 및/또는 중요도에 적어도 부분적으로 기초한다. 일부 실시예들에서는, 단계 406에서 판정되는 타겟 복잡도는, 타겟 디코더에서 처리 및/또는 배터리 전력을 절약하고자 하는 요망과 같은 그 밖의 다른 팩터들에 적어도 부분적으로 기초하며, 이 경우, 타겟 디코더에서 전체 디코딩 자원들 및/또는 가능성이, 인코딩된 프레임을 디코딩하는 데에 유용한 것으로 판정된 경우 다르게 판정되었을 수 있는 것에 비해, 그 프레임에 대한 더 낮은 타겟 복잡도가 단계 406에서 판정될 수 있다.
단계 408에서, 단계 406에서의 타겟 복잡도 내에 있는(즉, 이보다 작거나 혹은 동일한) 최대 복잡도를 갖는 인코딩 스킴이 그 프레임에 대해 판정된다. 일부 경우에, 단계 408에서 타겟 복잡도와 동일한 복잡도 혹은 그에 근접한 복잡도를 갖는 프레임을 인코딩하여서, 여전히 타겟 디코더에서의 디코딩 자원 제약을 만족시키면서 타겟 디코더에서 최적의 재생 품질이 얻어질 수 있도록 하는 것이 바람직하 다. 일부 실시예들에서는, 단계 408에서는, 단계 406에서 프레임에 대해 판정된 타겟 복잡도 내에 있는 복잡도를 갖는 인코딩 스킴을 판정하는 것을 포함하지만, 인코딩에 이용가능한 양자화 파라미터 값들 및/또는 이용가능한 툴셋들이 주어지는 경우 타겟 복잡도 내에 있는 최대 복잡도를 갖는 인코딩 스킴을 찾아내기 위한 검색 혹은 반복은 포함하지 않는다. 일부 이러한 경우들에서, 복잡도가 타겟 복잡도 제약을 만족시키고/만족시키거나 소정의 타겟 복잡도 범위에 있는 프레임에 대해 판정되는 제1 인코딩 스킴이 프레임을 인코딩하는 데에 이용된다. 이어서 프로세스(400)가 종료된다. 일부 실시예들에서는, 비디오 데이터 시퀀스 내에 포함되는 하나 이상의 프레임을 인코딩하도록 프로세스(400)가 반복적으로 수행된다.
도 5는 프레임을 인코딩하기 위한 프로세스의 일 실시예를 나타낸 도면이다. 일부 실시예들에서, 프로세스(500)는 도 2의 프로세스(200)의 단계 204에서 이용된다. 일부 실시예들에서는, 프로세스(500)는, 도 3의 프로세스(300)의 단계 302 및 304에서 이용된다. 일부 실시예들에서는, 프로세스(500)는, 도 4의 프로세스(400)의 단계 408에서 이용된다. 프로세스(500)는, 단계 502에서, 프레임에 대한 적어도 초기 인코딩 스킴을 판정하는 데에 이용될 초기 툴셋 및/또는 양자화 파라미터 값으로 시작된다. 일부 실시예들에서는, 단계 502에서의 초기 툴셋은, 예를 들어 관련 인코더에서의 모든 이용가능한 인코딩 툴들을 포함하는 디폴트 툴셋에 대응하며, 여기서 동일한 복잡도 코스트 가중치(예를 들면, 1)가 툴들 각각에 지정된다. 일부 실시예들에서, 단계 502에서의 초기 툴셋은, 이전의 프레임에 대해 이용된 것으로 판정된 툴셋에 대응한다. 단계 504에서, 단계 502의 툴셋 및/또는 양자화 파 라미터 값을 이용하여 프레임에 대한 인코딩 스킴이 판정된다. 일부 실시예들에서는, 단계 504에서 프레임의 인코딩 스킴을 판정하는 것은, 툴셋에서 이용가능한 하나 이상의 인코딩 툴을 이용하여 그 프레임 내에 포함되는 각 매크로블럭의 인코딩 스킴을 판정하는 것을 포함한다. 일부 실시예들에서는 전체적으로, 예를 들면, 수학식 1 또는 수학식 2 등의 최적화 공식을 이용하여, 프레임을 포함하는 각 매크로블럭에 대한 최소 인코딩 규격을 여전히 만족시키며 소정의 디코딩된 데이터 품질을 보장하는 가장 낮은 코스트를 갖는 인코딩 스킴을 반복적으로 판정함으로써, 프레임에 대한 최소 코스트 인코딩 스킴이 탐색된다. 일부 실시예들에서는, 전체적으로, 예를 들면, 여전히 소정의 디코딩된 데이터 품질을 보장하는 최소 인코딩 요건을 만족시키는 각 매크로블럭에 대한 최소 디코딩 복잡도와 연관된 인코딩 스킴을 판정함으로써, 프레임에 대한 최소 연관된 디코딩 복잡도를 갖는 인코딩 스킴이 탐색된다.
단계 506에서, 단계 504에서 프레임에 대해 판정된 인코딩 스킴으로 인코딩된 프레임의 복잡도가, 프레임과 연관된 타겟 복잡도 내에 있는지(즉, 그보다 작거나 혹은 동일한지) 여부가 판정된다. 일부 실시예들에서는, 프레임을 포함하는 매크로블럭들에 대해 선택된 인코딩 스킴들과 연관된 복잡도 코스트들을 함께 합산함으로써 프레임 복잡도가 판정된다. 일부 실시예들에서는, 수학식 3을 이용하여 프레임의 복잡도가 판정된다. 일부 실시예들에서는, 단계 506에서는, 프레임의 복잡도가, 프레임의 타겟 복잡도와 동일한지 혹은 그 미만의 소정의 백분율 내에 있는지 여부를 판정하여, 타겟 디코더에서의 최상의 가능한 재생을 보장하도록, 타겟 복잡도 내에서 최대 디코딩 복잡도를 갖는 인코딩 스킴이, 프로세스(500)를 이용하여 아마도 반복적으로 판정될 수 있는 것을 포함한다.
단계 506에서, 프레임 복잡도가 프레임의 타겟 복잡도 내에 있지 않은 것으로 판정되는 경우, 예를 들면, 프레임 복잡도가 타겟 복잡도보다 크거나 혹은 프레임의 타겟 복잡도 미만의 일정한 백분율 내에 있지 않은 경우, 단계 508에서 하나 이상의 매크로블럭에 대한 현재의 툴셋 및/또는 양자화 파라미터 값으로부터 선택된 인코딩 툴들이 조정되거나, 혹은 툴셋 그 자체 및/또는 양자화 파라미터 값이 조정되며, 프로세스(500)는, 단계 508에서 선택된 툴셋 및/또는 양자화 파라미터 값을 이용하여 프레임(즉, 프레임을 포함하는 매크로블럭들)에 대한 다른 인코딩 스킴이 판정되는 단계 504로 이어진다. 일부 실시예들에서는, 단계 508에서의 조정은, 예를 들어 프레임의 내용의 복잡도의 소스들에 대한 인식, 프레임의 내용을 인코딩하는 데에 어떤 인코딩 툴들이 선호되는지에 대한 인식, 어떤 인코딩 툴들이 디코딩 복잡도에 더 많이 기여하는 지에 대한 인식 등에 기초하여 지능적으로 행해진다. 단계 506에서, 프레임 복잡도가 타겟 복잡도 내에 있는 것으로 판정되는 경우(혹은 타겟 복잡도의 소정의 백분율 내에 있는 것으로 판정되는 경우), 단계 510에서, 프레임이 단계 504에서 프레임에 대해 판정된 인코딩 스킴으로 인코딩되며, 프로세스(500)가 종료된다. 일부 실시예들에서, 프로세스(500)는 비디오 데이터 시퀀스 내에 포함되는 하나 이상의 프레임을 인코딩하도록 반복적으로 수행된다.
도 6은 프레임에 대한 인코딩 스킴 및 프레임의 관련 코스트 혹은 복잡도를 판정하기 위한 프로세스의 일 실시예를 나타낸 도면이다. 일부 실시예들에서, 프 로세스(600)는 도 5의 프로세스(500)의 단계 504에서 이용된다. 일부 실시예들에서는, 프로세스(600)에서 프레임에 대한 인코딩 스킴을 판정하는 데에 하나의 선택된 툴셋 및/또는 양자화 파라미터 값이 이용되며, 인코딩될 프레임의 각 매크로블럭에 대한 하나 이상의 인코딩 스킴을 판정하는 데에, 선택된 툴셋에서 이용가능한 인코딩 툴들 중 하나 이상이 이용된다. 프로세스(600)는, 단계 602에서 인코딩 스킴이 판정될 프레임의 제1 매크로블럭에서 시작된다. 단계 604에서, 제1 인코딩 스킴이, 단계 602의 매크로블럭에 대해 판정된다. 일부 실시예들에서, 수학식 1 또는 수학식 2와 같은 최적화 공식이 이용되어, 단계 604에서의 인코딩 스킴의 선택을 돕는다. 단계 606에서, 단계 604에서 선택된 인코딩 스킴의 디코딩 복잡도 혹은 코스트가 계산된다. 일부 실시예들에서, 인코딩 툴들의 아마도 가중화된 타겟 디코더 특정 복잡도 코스트들 및/또는 인코딩 스킴에 이용되는 양자화 파라미터를 합함으로써, 단계 604에서 판정된 인코딩 스킴의 디코딩 복잡도가 단계 606에서 계산되며, 여기서, 일부 실시예들에서 인코딩 툴들의 복잡도 코스트들의 가중치는, 프레임의 인코딩 스킴을 판정하는 데에 이용되는 툴셋에 따라 달라진다. 일부 실시예들에서, 단계 606에서는, 인코딩 스킴을 이용하여 계산된 디코딩 복잡도 또는 코스트 및/또는 코스트, 레이트, 왜곡 등과 같은 관련 정보를 저장하여서, 인코딩 스킴이 매크로블럭의 다른 잠재적인 인코딩 스킴들과 비교될 수 있게 해주는 것을 포함한다. 일부 실시예들에서는, 프레임에 대한 다른 인코딩 스킴을 판정할 때(즉, 프레임의 하나 이상의 매크로블럭에 대한 아마도 서로 다른 인코딩 스킴들을 판정할 때), 예를 들면 프레임의 총 복잡도가, 도 5의 프로세스(500)의 단계 506에 서처럼 프레임의 타겟 복잡도를 초과할 때, 이용가능하고/하거나 적절할 경우, 이러한 저장된 정보가 이용되며, 예를 들면, 동일한 선택된 툴셋 및/또는 양자화 파라미터 값이, 프레임에 대한 다른 인코딩 스킴을 판정하는 데에 이용될 것이다.
단계 608에서, 매크로블럭에 대한 다른 인코딩 스킴들을 찾을지 여부가 판정된다. 일부 실시예들에서는, 단계 608에서 다른 인코딩 스킴을 찾을 것으로 판정하여, 선택된 툴셋 및/또는 양자화 파라미터 값이 주어지는 경우, 매크로블럭에 대한 최적의 인코딩 스킴이 찾아질 수 있도록 한다. 단계 608에서, 매크로블럭에 대한 다른 인코딩 스킴을 찾을 것으로 판정되는 경우, 단계 610에서, 예를 들어 동일한 선택된 툴셋 및/또는 양자화 파라미터를 이용하여 매크로블럭에 대한 다른 인코딩 스킴이 선택되며, 프로세스(600)는 이어서, 단계 606으로 되돌아가서, 단계 610에서 선택된 인코딩 스킴의 디코딩 복잡도가 계산되어, 인코딩 스킴 및/또는 인코딩 스킴과 연관된 정보와 함께 저장되는 것이 계속된다. 일부 실시예들에서는, 프로세스(600)의 단계들 610, 606, 및 608이 한 번 이상 반복되어서, 각종 인코딩 스킴들의 비교를 위해, 관련 디코딩 복잡도들 및/또는 관련 정보를 획득하여 저장하며, 이에 따라 매크로블럭에 대한 최적의 인코딩 스킴이 선택될 수 있게 된다. 일부 실시예들에서, (예를 들면, 단계 604 및 610에서) 매크로블럭에 대해 선택된 인코딩 스킴들은, 레이트-왜곡 최적화 공식(예를 들면, 수학식 1) 또는 수정된 레이트-왜곡 최적화 공식(예를 들면, 수학식 2)에 적어도 부분적으로 기초한 것이다. 단계 608에서, (예를 들어, 선택하기 위한 하나 이상의 인코딩 스킴이 이미 판정되었기 때문에, 혹은 예를 들어 시간 혹은 처리 제약으로 인해 다른 인코딩 스킴들의 판정시에 또다른 자원들이 소진될 것을 원하지 않기 때문에, 적절한 인코딩 스킴이 탐색되었기 때문에 등의 이유로 인해) 매크로블럭에 대한 다른 인코딩 스킴을 탐색하지 않을 것으로 판정되는 경우, 예를 들어 단계 604 혹은 610에서 매크로블럭에 대해 판정된 하나 이상의 인코딩 스킴 세트로부터, 단계 612에서 매크로블럭에 대한 인코딩 스킴이 선택된다. 일부 실시예들에서는, 단계 612에서 매크로블럭에 대한 인코딩 스킴을 선택하기 위해, 단계 606에서 매크로블럭에 대해 저장되었던 인코딩 스킴(들), 관련 디코딩 복잡도들, 및/또는 그 밖의 다른 관련 정보의 비교가 이용된다. 단계 614에서, 단계 612에서 매크로블럭에 대해 선택된 인코딩 스킴과 연관된 디코딩 복잡도 코스트가, 일부 실시예들에서 전체 프레임의 총 디코딩 복잡도를 나타내고, 프레임을 포함하는 매크로블럭들에 대해 선택된 인코딩 스킴들의 각각의 디코딩 복잡도 코스트들을 포함하는 디코딩 복잡도 코스트들의 현행 합계에 추가된다.
단계 616에서, 인코딩될 프레임의 각 매크로블럭에 대해 인코딩 스킴이 판정되었는지 여부가 판정된다. 단계 616에서, 인코딩될 프레임의 모든 매크로블럭들에 대해 인코딩 스킴이 선택된 것은 아닌 것으로 판정되는 경우, 프로세스(600)는, 인코딩 스킴이 아직 선택되지 않은 매크로블럭으로 진행하는 단계 618로 계속되며, 단계 604로 되돌아가서, 단계 618의 매크로블럭에 대한 제1 인코딩 스킴을 판정하는 것을 계속한다. 일부 실시예들에서, 단계 604에서 단계 618의 매크로블럭에 대해 선택되는 인코딩 스킴은, 하나 이상의 이전의 매크로블럭에 대해 선택된 인코딩 스킴들에 적어도 부분적으로 기초하는 것이다. 단계 616에서, 인코딩될 프레임의 모든 매크로블럭들에 대해 인코딩 스킴이 판정된 것으로 판정되는 경우, 프레임의 인코딩 스킴 전체(이는, 일부 실시예들에서 프레임을 포함하는 매크로블럭들의 인코딩 스킴들로 구성됨)와 프레임의 총 디코딩 복잡도(즉, 단계 614의 디코딩 복잡도 코스트들의 현행 합계의 최종 값)가 단계 620에서 리턴되며 프로세스(600)가 종료된다. 일부 실시예들에서, 프레임을 포함하는 매크로블럭들의 인코딩 스킴들의 디코딩 복잡도들의 현행 합계로서 프레임의 총 디코딩 복잡도를 산출하는 대신에, 프레임의 총 디코딩 복잡도가, 각종 인코딩 툴들이 이용되는 횟수, 및 인코딩 툴들과 관련된 타겟 디코더 특정 복잡도 코스트들과, 프레임을 인코딩하는 데에 이용되는 툴셋에 따라 달라지는 복잡도 코스트들의 임의의 가능한 가중치에 기초한 수학식 3을 이용하여 계산된다. 일부 실시예들에서, 각 매크로블럭의 디코딩 복잡도(예를 들면, 단계 606) 및 프레임의 총 디코딩 복잡도(즉, 단계 614의 현행 합계)를 계산하는 대신에, 혹은 이에 추가하여, 수학식 1 또는 수학식 2 등의 최적화 공식이 이용되어, 각 매크로블럭의 인코딩 스킴의 코스트를 계산하며, 계산된 코스트는, 프레임의 총 코스트를 나타내는 이러한 코스트들의 현행 합계에 추가된다. 일부 이러한 경우, 프레임에 대한 적절한 인코딩 스킴을 판정할 때, 프레임의 총 코스트는, 예를 들어, 도 5의 프로세스(500)의 단계 506에서, 프레임에 대한 타겟 코스트과 비교된다.
도 7은 프레임의 인코딩에 이용되는 툴셋을 조정하기 위한 프로세스의 일 실시예를 나타낸 도면이다. 일부 실시예들에서, 프로세스(700)는 도 5의 프로세스(500)의 단계 508에서 이용된다. 프로세스(700)는, 프레임에 대한 선택된 인코 딩 스킴의 디코딩 복잡도 코스트에 가장 많이 기여하는 팩터들 및/또는 인코딩 툴들이 판정되는 단계 702에서 시작된다. 일부 실시예들에서, 도 5의 프로세스(500)의 단계 504에서 판정된 프레임에 대한 인코딩 스킴의 디코딩 복잡도 코스트에 가장 많이 기여하는 팩터들 및/또는 인코딩 툴들이 단계 702에서 분석된다. 일부 실시예들에서는, 단계 702에서는, 선택된 인코딩 스킴으로 인코딩될 때 높은 디코딩 복잡도 코스트들을 발생시키는 프레임의 내용의 일부를 판정하는 것을 포함한다. 일부 실시예들에서는, 단계 702에서는, 프레임의 인코딩 스킴의 디코딩 복잡도 코스트에 가장 많이 기여하는 인코딩 툴들 및/또는 다른 파라미터들을 판정하는 것을 포함한다. 단계 704에서, 단계 702에서 프레임의 디코딩 복잡도 코스트에 가장 많이 기여하는 것으로 판정된 하나 이상의 인코딩 툴의 이용을 없애고/없애거나 (예를 들어, 복잡도 코스트 가중치에 의해) 페널티를 과하는 툴셋이 선택된다. 일부 실시예들에서, 단계 704에서는, 양자화 파라미터의 값을 조정하는 것을 포함한다. 원하는 복잡도, 및 선택된 툴셋과 연관된 복잡도들에 따라 양자화 파라미터가 지능적으로 조정될 수 있다. 예를 들면, 프레임의 인코딩에 이용될 툴셋을 변경하는 효과를 상쇄시키도록 양자화 파라미터가 적어도 부분적으로 조정될 수 있다. 예를 들면, 단계 704에서 더욱 세밀한 양자화 값이 선택되어서, 단계 704에서 제한된 인코딩 옵션들 및/또는 복잡도를 갖는 툴셋을 선택하는 효과를 상쇄시킬 수 있다. 양자화 파라미터 값을 조정하는 것에 대하여 본원에 기술되어 있지만, 프레임의 인코딩의 복잡도에 영향을 미칠 수 있는 그 밖의 다른 파라미터들도 또한 마찬가지로 필요할 경우 단계 704에서 조정될 수 있다. 이어서 프로세스(700)는 종료된다.
도 8은 하나 이상의 프레임을 사전 처리(pre-processing)하기 위한 프로세스의 일 실시예를 나타낸 도면이다. 일부 실시예들에서, 인코딩 전에, 프레임(혹은 선택 기준에 근거한 프레임)에 대한 더 나은 인코딩 스킴을 선택하는 것을 용이하게 하기 위해 그 프레임이 사전 처리된다. 일부 실시예들에서, 프레임에서의 엔트로피를 감소시키도록 프레임이 사전 처리되거나 혹은 사전 처리될 수 있다. 예를 들면, 제한된 인코딩 옵션들 및/또는 복잡도를 갖는 툴셋을 이용하여 높은 복잡도를 갖는 비디오 시퀀스의 프레임을 인코딩할 때, 일부 실시예들에서, 이 프레임은, 인코딩 전에 사전 처리되어서, 프레임의 내용을 적절하게 저하(gracefully degrade)시키며 인코딩된 프레임 내에서의 압축 가공물(compression artifacts)을 방지하게 된다. 일부 실시예들에서, (예를 들어, 프레임의 인코딩 반복을 시도하는 것으로부터, 관련되거나 혹은 유사한 프레임의 인코딩으로부터, 프레임을 분석함으로써) 프레임의 내용의 일부의 최적 혹은 거의 최적의 인코딩이, 매우 비싸거나 혹은 타겟 디코더에 의해 핸들링될 수 없는 기술을 요구하는 것으로 판정될 수 있는 경우, 이러한 내용은, 인코딩되기 전에 프레임으로부터 축소되고/되거나 제거된다. 프로세스(800)는, 높은 복잡도를 갖는 프레임이 검출되는 단계 802에서 시작된다. 단계 804에서, 단계 802에서 검출된 프레임이 적절하게 사전 처리되어서, 그 프레임에 대한 더 낮은 타겟 디코더 코스트 인코딩이 획득될 수 있게 된다. 예를 들면, 단계 802에서 검출된 프레임이 노이즈가 있는 것으로 판정되는 경우, 이는, 단계 804에서 공간 혹은 평활 필터(spatial or smoothing filter)를 이용하여 사전 처리되어서, 노이즈를 감소시키고/감소시키거나 제거할 수 있으며, 이에 따라 프레임의 인코딩이, 원래의 프레임 데이터에 존재하는 노이즈에 의해 영향을 받지 않거나 혹은 적어도 영향을 덜 받게 된다. 단계 806에서, 사전 처리된 프레임이 인코딩되며, 프로세스(800)가 종료된다. 일부 실시예들에서는, 프로세스(800)는, 인코딩될 필요가 있는 비디오 시퀀스의 하나 이상의 관련되거나 혹은 연속적인 프레임의 사전 처리에 이용된다. 예를 들면, 인코더측에서, 타겟 디코더가 비디오 내용의 시퀀스 혹은 그 서브셋 내의 모든 프레임을 핸들링할 수는 없을 것으로 알려진 경우, 그 시퀀스 내의 하나 이상의 연속적인 프레임에 대한 일시적인 필터링이 인코딩 전에 이용될 수 있다. 예를 들면, 둘 이상의 연속적인 프레임들의 내용은 평균화되거나, 혹은 프레임들이 다운-샘플링(down-sampled)될 수 있다(예를 들면, 프레임들은 하프 레이트(half rate)로 인코딩되어 타겟 디코더에 제공되도록 선택될 수 있는데, 즉, 비디오 내용의 시퀀스 내의 모든 다른 프레임이, 인코딩되어 타겟 디코더로 제공되도록 선택될 수 있다). 일부 실시예들에서는, 프레임들의 다운-샘플링이 지능적으로 수행될 수 있다. 예를 들면, 두 개 이상의 연속 프레임들 사이에서 많이 변화되는 프레임들만이, 인코딩 및 타겟 디코더로의 전송에 선택될 수 있다.
일부 실시예들에서, 인코더는, 필요할 경우, 예를 들면, 디코더가 제한된 처리 전력 및/또는 메모리로 인해 지속될 수 없을 때, 배터리 전력이 관련 장치에서 낮게 실행되거나 혹은 절약될 것이 요구될 때 등에, 디코더 측에서의 적절한 저하를 용이하게 하기 위해 확장성(scalability)을 이용한다. 일부 실시예들에서, 일시적인 확장성은, 타겟 디코더가, 필요할 경우 디코더측에서 프레임들을 적절하게 드롭(drop)시키고 프레임 레이트를 효과적으로 감소시키는 것을 가능하게 해준다. 이러한 일부 경우들에서, 비디오 내용의 시퀀스 혹은 스트림 내의 참조 및 비참조 프레임들의 패턴에 대한 지능적인 선택에 의해 인코더측에 일시적인 확장성이 포함된다. 일부 실시예들에서, 참조 및 비참조 프레임들의 패턴은, 몇몇 프레임들, 바람직하게는 하나 이상의 비참조 프레임이 드롭되어야 하는 경우에도 타겟 디코더에서의 뷰잉 경험을 최대화하도록 선택된다. 예를 들면, 비디오 내용의 시퀀스의 서브셋이 높은 복잡도를 갖는 것으로 검출되는 경우, 서브셋 내의 더 많은 프레임들이, 예를 들어 관련 복잡도를 핸들링하기 위한 타겟 디코더의 능력의 추정에 기초하여 인코더측에서 비참조 프레임들로서 마크될 수 있다. 마찬가지로, 인코더측에서 각각의 프레임이 더욱 복잡하며, 높은 디코딩 코스트에 의해 특징지워지는 인코딩 스킴을 갖는 것으로 판정되는 경우, 이는 비참조 프레임인 것으로 선택되어서, 타겟 디코더가, 뒤쳐지는 경우(running behind) 뷰잉 경험의 큰 저하를 유발하지 않고, 그 프레임을 드롭하는 옵션을 갖게 된다. 일부 실시예들에서는, 인코더측은, 인코더에서 타겟 디코더의 모델을 통하여 인코더측에서 이용가능한 타겟 디코더의 공지된 특징 및 예상 성능, 디코딩을 위해 타겟 디코더에 제공되었거나 혹은 후속하여 제공될 다른 데이터의 복잡도에 대한 인식, 및/또는 그 현재 성능에 관한 디코더로부터의 동적 피드백에 적어도 부분적으로 기초하는 비디오 내용의 시퀀스에 대한 참조 및 비참조 프레임들의 패턴을 선택하기 위한 프로세스 혹은 알고리즘을 포함한다. 일시적인 확장성에 추가하여 혹은 그 대신에, 하나 이상의 다른 확장성 층이 인코더 측에서의 프레임의 인코딩 시에 포함되어서, 디코더 측에서의 더 욱 적절한 저하를 가능하게 해줄 수 있다. 일부 실시예들에서, 디코더 측에서 겪게 되는 재생 혹은 뷰잉 품질 페널티를 최소화하는 방식으로 하나 이상의 확장성 층이 인코더 측에서 선택된다. 인코딩된 비트 스트림 내에 구축되는 확장의 양은 변화될 수 있으며, 비트 스트림의 국부적 복잡도에 따라 달라질 수 있다.
도 9는 타겟 디코더에서 인코딩된 프레임의 디코딩을 적절하게 저하시키는 프로세스의 일 실시예를 나타낸 도면이다. 일부 실시예들에서, 프로세스(900)는, 예를 들어 타겟 디코더에서의 처리 혹은 전력 소비 제약으로 인해, 인코딩된 비디오 시퀀스의 디코딩 시에 디코더가 뒤쳐지기 시작할 때, 타겟 디코더에서 이용된다. 프로세스(900)는, 높은 디코딩 복잡도를 갖는 프레임이 검출되는 단계 902에서 시작된다. 단계 904에서, 단계 902의 프레임의 디코딩이 적절하게 저하된다. 일부 실시예들에서, 단계 904에서는, 프레임이 일부를 구성하는 비디오 내용의 전체 시퀀스의 뷰잉 경험을 최대화하고 비쥬얼 품질을 시간의 경과에 따라 일정하게 유지하거나 혹은 거의 일정하게 유지하는 것을 보장하는 방식으로 프레임의 디코딩을 저하시키는 것을 포함한다. 일부 실시예들에서는, 단계 904에서는, 예를 들어 프레임이 높은 디코딩 복잡도를 갖는 것으로 인해, 프레임을 전혀 디코딩하지 않는 것(즉, 프레임을 드롭시킴)을 포함한다. 이러한 일부 경우들에서, 참조 프레임들에는 더 높은 디코딩 우선순위가 주어지며, 프레임은 비참조 프레임인 경우에만 완전하게 드롭될 수 있어서, 관련 비디오 시퀀스 내의 다른 프레임들이 그 프레임의 드롭에 의해 영향을 받지 않게 한다. 일부 실시예들에서, 단계 904에서는, 가장 중요한 디코딩 동작들을 수행하고, 그 프레임을 완전하게 디코딩하도록 수행될 필 요가 있는 하나 이상의 다른 디코딩 동작을 드롭시키는 것을 포함한다. 이러한 기술로 인해, 프레임에 대한 더 낮은 품질의 디코딩이 행해질 수 있으며, 이 기술은, 프레임이 완전하게 드롭되는 것은 원하지 않고 프레임이 디코딩될 때 제한된 디코딩 자원들이 디코더에서 이용가능한 경우 유용할 수 있다. 마찬가지로, 일부 실시예들에서는, 프레임의 인코딩과 연관된 하나 이상의 확장성 층과 연관된 디코딩 동작들이 드롭되어서, 인코딩된 프레임의 더 낮은 품질의 디코딩을 얻게 된다. 이어서, 프로세스(900)는 종료된다.
본원에 개시된 바와 같이, 데이터가 제공될 타겟 디코더에서 이용가능한 디코딩 자원들에 의해 핸들링될 수 있는 디코딩 복잡도에 기초하여 인코더에서 데이터에 대한 인코딩 스킴을 지능적으로 선택함으로써, 최적 혹은 최적에 가까운 디코딩 성능 및 재생 품질이 타겟 디코더에서 얻어질 수 있다. 또한, 인코딩하기 전에 데이터를 사전 처리하는 것은, 인코딩된 데이터의 디코딩 복잡도를 감소시키는 것을 도울 수 있다. 필요할 경우, 인코딩된 데이터의 디코딩 동안의 적절한 저하가, 데이터의 인코딩 스킴에 포함되는 확장성을 통해 용이하게 될 수 있다. 디코딩된 데이터의 품질을 향상시키기 위해 디코더에서의 후처리가 이용될 수 있다. 실제의 인코딩된 데이터 외에도, 데이터의 인코딩과 관련된 정보가 인코더에 의해 타겟 디코더에 제공되어서, 데이터의 디코딩 및/또는 사전 처리를 도울 수 있다. 본원에 개시된 바와 같이, 코덱의 인코딩 및/또는 디코딩 프로세스들에서 지능성을 포함시킴으로써, 더 나은 디코딩된 데이터 품질이 타겟 디코더에서 얻어지게 될 수 있다.
전술한 실시예들에 대해 이해의 명확성을 위해 상세하게 기술하였지만, 본 발명은 제공된 상세사항들에 제한되지 않는다. 본 발명을 구현하는 많은 대안적인 방식들이 존재한다. 개시된 실시예들은 예시용이며 제한용이 아니다.

Claims (40)

  1. 데이터 세트를 인코딩하기 위한 방법으로서,
    인코딩될 데이터 세트를 수신하는 단계; 및
    인코딩된 데이터 세트가 제공될 타겟 디코더의 상태에 적어도 부분적으로 기초하여 상기 데이터 세트를 인코딩하는 단계
    를 포함하는 데이터 세트 인코딩 방법.
  2. 제1항에 있어서,
    상기 상태는 상기 타겟 디코더의 실제 상태를 포함하는 데이터 세트 인코딩 방법.
  3. 제2항에 있어서,
    상기 실제 상태는, 상기 타겟 디코더로부터 동적으로 수신되는 피드백에 적어도 부분적으로 기초하는 데이터 세트 인코딩 방법.
  4. 제1항에 있어서,
    상기 상태는 상기 타겟 디코더의 예측 상태를 포함하는 데이터 세트 인코딩 방법.
  5. 제4항에 있어서,
    상기 예측 상태는, 상기 타겟 디코더의 모델로부터 적어도 부분적으로 판정되는 데이터 세트 인코딩 방법.
  6. 제4항에 있어서,
    상기 데이터 세트는 제1 데이터 세트를 포함하며, 상기 예측 상태는, 데이터 세트들의 시퀀스 내에서 상기 제1 데이터 세트에 선행하는 제2 데이터 세트의 디코딩 복잡도(decoding complexity)에 의해 적어도 부분적으로 판정되는 데이터 세트 인코딩 방법.
  7. 제1항에 있어서,
    상기 상태는, 상기 타겟 디코더와 연관된 자원의 현재 이용가능성을 나타내는 데이터 세트 인코딩 방법.
  8. 제7항에 있어서,
    상기 현재 이용가능성은, 이용가능한 디코딩 알고리즘, 이용가능한 디코딩 처리 속도, 이용가능한 디코딩 전력 소비, 및 이용가능한 디코딩 메모리 중 하나 이상을 포함하는 데이터 세트 인코딩 방법.
  9. 제1항에 있어서,
    상기 상태는, 상기 타겟 디코더의 디코딩된 화상 버퍼의 디코딩된 화상 버퍼 상태를 적어도 부분적으로 포함하는 데이터 세트 인코딩 방법.
  10. 제1항에 있어서,
    상기 타겟 디코더의 상태에 적어도 부분적으로 기초하여 상기 데이터 세트를 인코딩하는 단계는, 상기 인코딩된 데이터 세트에 대한 타겟 디코딩 복잡도를 판정하는 단계를 포함하는 데이터 세트 인코딩 방법.
  11. 제10항에 있어서,
    상기 타겟 디코딩 복잡도는, 상기 타겟 디코더와 연관된 제약(constraint)에 의해 적어도 부분적으로 판정되는 데이터 세트 인코딩 방법.
  12. 제10항에 있어서,
    상기 타겟 디코딩 복잡도는, 상기 타겟 디코더와 연관된 디코딩된 화상 버퍼의 상태에 의해 적어도 부분적으로 판정되는 데이터 세트 인코딩 방법.
  13. 제10항에 있어서,
    상기 타겟 디코딩 복잡도는, 상기 데이터 세트의 상대적인 중요도에 의해 적어도 부분적으로 판정되는 데이터 세트 인코딩 방법.
  14. 제10항에 있어서,
    상기 데이터 세트는 제1 데이터 세트를 포함하며, 상기 타겟 디코딩 복잡도는, 데이터 세트들의 시퀀스 내에서 상기 제1 데이터 세트를 선행하는 제2 데이터 세트의 디코딩 복잡도에 의해 적어도 부분적으로 판정되는 데이터 세트 인코딩 방법.
  15. 제10항에 있어서,
    상기 데이터 세트는 제1 데이터 세트를 포함하며, 상기 타겟 디코딩 복잡도는, 데이터 세트들의 시퀀스 내에서 상기 제1 데이터 세트에 후속하여 발생되는 제2 데이터 세트의 디코딩 복잡도에 의해 적어도 부분적으로 판정되는 데이터 세트 인코딩 방법.
  16. 제10항에 있어서,
    상기 타겟 디코딩 복잡도를 판정하는 단계는, 상기 타겟 디코더의 모델을 이용하여 상기 타겟 디코더를 시뮬레이팅하는 단계를 포함하는 데이터 세트 인코딩 방법.
  17. 제10항에 있어서,
    상기 타겟 디코더의 상태에 적어도 부분적으로 기초하여 상기 데이터 세트를 인코딩하는 단계는, 디코딩 복잡도 코스트들(decoding complexity costs)을, 상기 데이터 세트를 인코딩하는 데에 이용되는 하나 이상의 코딩 툴 각각에 지정하고, 상기 하나 이상의 코딩 툴, 혹은 그것의 선택된 서브셋을 이용하여, 상기 데이터 세트를 인코딩하는 데에 이용되는 각각의 코딩 툴의 상기 지정된 코딩 복잡도 코스트에 적어도 부분적으로 기초하여 판정되는, 상기 데이터 세트를 디코딩하는 총 복잡도 코스트가 상기 타겟 디코딩 복잡도를 초과하지 않도록 하는 방식으로 상기 데이터 세트를 인코딩하는 단계를 포함하는 데이터 세트 인코딩 방법.
  18. 제1항에 있어서,
    상기 타겟 디코더의 상태에 적어도 부분적으로 기초하여 상기 데이터 세트를 인코딩하는 단계는, 디코딩 복잡도 코스트들을, 상기 데이터 세트를 인코딩하는 데에 이용되는 하나 이상의 코딩 툴 각각에 지정하는 단계를 포함하는 데이터 세트 인코딩 방법.
  19. 제1항에 있어서,
    상기 데이터 세트를 사전 처리(pre-processing)하는 단계를 더 포함하는 데이터 세트 인코딩 방법.
  20. 제19항에 있어서,
    상기 데이터 세트를 사전 처리하는 단계는, 상기 타겟 디코더의 상태 및 상기 데이터 세트의 복잡도에 적어도 부분적으로 기초하는 데이터 세트 인코딩 방법.
  21. 제1항에 있어서,
    상기 데이터 세트를 인코딩하는 단계는, 하나 이상의 확장성 층(scalability layer)을 이용하는 단계를 포함하는 데이터 세트 인코딩 방법.
  22. 제1항에 있어서,
    상기 타겟 디코더는 타겟 디코더 세트 내에 포함되며, 상기 데이터 세트를 인코딩하는 단계는, 품질 확장성을 이용하여 상기 타겟 디코더 세트에 대해 상기 데이터 세트를 커스텀 인코딩(custom encoding)하는 단계를 포함하는 데이터 세트 인코딩 방법.
  23. 제22항에 있어서,
    각 타겟 디코더에서의 상기 데이터 세트의 디코딩 품질은, 각 타겟 디코더에서의 디코딩 자원들의 현재 상태 및 이용가능성에 적어도 부분적으로 기초하여 판정되는 데이터 세트 인코딩 방법.
  24. 제1항에 있어서,
    상기 인코딩된 데이터 세트를 상기 타겟 디코더에 제공하는 단계를 더 포함하는 데이터 세트 인코딩 방법.
  25. 제24항에 있어서,
    상기 제공하는 단계는, 송신하는 단계; 브로드캐스팅하는 단계; 다운로딩하는 단계; 매체에 저장하는 단계; 이동식 매체에 저장하는 단계; 상기 타겟 디코더와 연관된 디바이스에 이동식 매체를 삽입하는 단계; 및 매체로부터 상기 인코딩된 데이터 세트를 판독하는 단계 중 하나 이상을 포함하는 데이터 세트 인코딩 방법.
  26. 제24항에 있어서,
    상기 타겟 디코더에 제공되는 상기 인코딩된 데이터 세트가 상기 타겟 디코더에서 디코딩되는 방식은, 상기 타겟 디코더의 현재 상태에 적어도 부분적으로 기초하는 데이터 세트 인코딩 방법.
  27. 제24항에 있어서,
    상기 타겟 디코더가 지속될 수 없거나 혹은 전력을 절약하기를 원하는 경우, 상기 타겟 디코더는, 상기 데이터 세트의 디코딩을 적절하게 저하(gracefully degrade)시키기 위해 상기 데이터 세트의 인코딩에 포함하는 하나 이상의 확장성 층을 이용하는 데이터 세트 인코딩 방법.
  28. 제24항에 있어서,
    상기 데이터 세트는 제1 데이터 세트를 포함하며, 상기 타겟 디코더는, 상기 제1 데이터 세트를 포함하는 데이터 세트들의 시퀀스의 인코딩에 포함되는 일시적 인 확장성을 이용하여 상기 데이터 세트들의 시퀀스에서 하나 이상의 데이터 세트를 드롭시키는 데이터 세트 인코딩 방법.
  29. 제1항에 있어서,
    상기 데이터 세트는 하나 이상의 비디오 데이터 프레임을 포함하는 데이터 세트 인코딩 방법.
  30. 데이터 세트를 인코딩하기 위한 시스템으로서,
    인코딩될 데이터 세트를 수신하고,
    인코딩된 데이터 세트가 제공될 타겟 디코더의 상태에 적어도 부분적으로 기초하여 상기 데이터 세트를 인코딩하도록
    구성된 프로세서; 및
    상기 프로세서에 결합되고, 상기 프로세서에 명령어들을 제공하도록 구성된 메모리
    를 포함하는 데이터 세트 인코딩 시스템.
  31. 제30항에 있어서,
    상기 상태는 상기 타겟 디코더의 실제 상태를 포함하는 데이터 세트 인코딩 시스템.
  32. 제30항에 있어서,
    상기 상태는 상기 타겟 디코더의 예측 상태를 포함하는 데이터 세트 인코딩 시스템.
  33. 제30항에 있어서,
    상기 상태는, 상기 타겟 디코더의 디코딩된 화상 버퍼의 디코딩된 화상 버퍼 상태를 적어도 부분적으로 포함하는 데이터 세트 인코딩 시스템.
  34. 제30항에 있어서,
    상기 타겟 디코더의 상태에 적어도 부분적으로 기초하여 상기 데이터 세트를 인코딩하는 것은, 상기 인코딩된 데이터 세트에 대한 타겟 디코딩 복잡도를 판정하는 것을 포함하는 데이터 세트 인코딩 시스템.
  35. 제30항에 있어서,
    상기 타겟 디코더의 상태에 적어도 부분적으로 기초하여 상기 데이터 세트를 인코딩하는 것은, 디코딩 복잡도 코스트들을, 상기 데이터 세트를 인코딩하는 데에 이용되는 하나 이상의 코딩 툴 각각에 지정하는 것을 포함하는 데이터 세트 인코딩 시스템.
  36. 제30항에 있어서,
    상기 프로세서는 또한, 상기 데이터 세트를 사전 처리하도록 구성되는 데이터 세트 인코딩 시스템.
  37. 제30항에 있어서,
    상기 데이터 세트를 인코딩하는 것은, 하나 이상의 확장성 층을 이용하는 것을 포함하는 데이터 세트 인코딩 시스템.
  38. 제30항에 있어서,
    상기 프로세서는 또한, 상기 인코딩된 데이터 세트를 상기 타겟 디코더에 제공하도록 구성되는 데이터 세트 인코딩 시스템.
  39. 제38항에 있어서,
    상기 타겟 디코더에 제공되는 상기 인코딩된 데이터 세트가 상기 타겟 디코더에서 디코딩되는 방식은, 상기 타겟 디코더의 현재 상태에 적어도 부분적으로 기초하는 데이터 세트 인코딩 시스템.
  40. 데이터 세트를 인코딩하기 위한 컴퓨터 프로그램 제품으로서,
    상기 컴퓨터 프로그램 제품은, 컴퓨터 판독가능 매체에서 구현되며,
    인코딩될 데이터 세트를 수신하고, 인코딩된 데이터 세트가 제공될 타겟 디코더의 상태에 적어도 부분적으로 기초하여 상기 데이터 세트를 인코딩하기 위한 컴퓨터 명령어들을 포함하는 컴퓨터 프로그램 제품.
KR1020097007296A 2006-09-11 2007-09-11 복잡도 인식 인코딩 KR101103187B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/519,843 US7456760B2 (en) 2006-09-11 2006-09-11 Complexity-aware encoding
US11/519,843 2006-09-11
PCT/US2007/078148 WO2008033830A2 (en) 2006-09-11 2007-09-11 Complexity-aware encoding

Publications (2)

Publication Number Publication Date
KR20090075686A true KR20090075686A (ko) 2009-07-08
KR101103187B1 KR101103187B1 (ko) 2012-01-04

Family

ID=39137016

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097007296A KR101103187B1 (ko) 2006-09-11 2007-09-11 복잡도 인식 인코딩

Country Status (5)

Country Link
US (4) US7456760B2 (ko)
EP (3) EP2070331B1 (ko)
JP (2) JP4865864B2 (ko)
KR (1) KR101103187B1 (ko)
WO (1) WO2008033830A2 (ko)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970513B1 (en) * 2001-06-05 2005-11-29 At&T Corp. System for content adaptive video decoding
US6968006B1 (en) 2001-06-05 2005-11-22 At&T Corp. Method of content adaptive video decoding
US6810086B1 (en) 2001-06-05 2004-10-26 At&T Corp. System and method of filtering noise
US6909745B1 (en) 2001-06-05 2005-06-21 At&T Corp. Content adaptive video encoder
US7773670B1 (en) 2001-06-05 2010-08-10 At+T Intellectual Property Ii, L.P. Method of content adaptive video encoding
US7456760B2 (en) * 2006-09-11 2008-11-25 Apple Inc. Complexity-aware encoding
US9100702B2 (en) 2006-09-11 2015-08-04 Tivo Inc. Personal content distribution network
GB0619570D0 (en) * 2006-10-04 2006-11-15 Univ Bristol Complexity scalable video transcoder and encoder
US8401366B2 (en) * 2006-10-31 2013-03-19 Tivo Inc. Method and apparatus for downloading ancillary program data to a DVR
US8270819B2 (en) * 2006-10-31 2012-09-18 Tivo Inc. Performing trick play functions in a digital video recorder with efficient use of resources
US8296662B2 (en) * 2007-02-05 2012-10-23 Brother Kogyo Kabushiki Kaisha Image display device
US20090060035A1 (en) * 2007-08-28 2009-03-05 Freescale Semiconductor, Inc. Temporal scalability for low delay scalable video coding
US20090094113A1 (en) * 2007-09-07 2009-04-09 Digitalsmiths Corporation Systems and Methods For Using Video Metadata to Associate Advertisements Therewith
US8145794B2 (en) 2008-03-14 2012-03-27 Microsoft Corporation Encoding/decoding while allowing varying message formats per message
US20090304086A1 (en) 2008-06-06 2009-12-10 Apple Inc. Method and system for video coder and decoder joint optimization
US8359612B2 (en) 2008-08-13 2013-01-22 Tivo Inc. Content distribution system using transportable memory devices
WO2010079790A1 (ja) * 2009-01-08 2010-07-15 日本電気株式会社 配信システムと方法並びに変換装置
US11013995B2 (en) * 2009-06-01 2021-05-25 Sony Interactive Entertainment LLC Qualified video delivery methods
EP2264904B9 (en) * 2009-06-16 2013-08-21 Canon Kabushiki Kaisha Methods and device of binary coding and decoding for structured document comprising a plurality of data
US8706272B2 (en) * 2009-08-14 2014-04-22 Apple Inc. Adaptive encoding and compression of audio broadcast data
US8346203B2 (en) * 2009-08-14 2013-01-01 Apple Inc. Power management techniques for buffering and playback of audio broadcast data
US8635357B2 (en) * 2009-09-08 2014-01-21 Google Inc. Dynamic selection of parameter sets for transcoding media data
US9300969B2 (en) 2009-09-09 2016-03-29 Apple Inc. Video storage
US8407557B2 (en) * 2009-12-03 2013-03-26 Osocad Remote Limited Liability Company System, method and computer readable medium for communication of encoded messages
JP5694674B2 (ja) * 2010-03-03 2015-04-01 株式会社メガチップス 画像符号化装置、画像符号化復号化システム、画像符号化方法、画像表示方法
US20130083858A1 (en) * 2010-05-24 2013-04-04 Nec Corporation Video image delivery system, video image transmission device, video image delivery method, and video image delivery program
US8976856B2 (en) 2010-09-30 2015-03-10 Apple Inc. Optimized deblocking filters
US8880633B2 (en) 2010-12-17 2014-11-04 Akamai Technologies, Inc. Proxy server with byte-based include interpreter
US20120265853A1 (en) * 2010-12-17 2012-10-18 Akamai Technologies, Inc. Format-agnostic streaming architecture using an http network for streaming
US9538128B2 (en) * 2011-02-28 2017-01-03 Cisco Technology, Inc. System and method for managing video processing in a network environment
US9807397B2 (en) * 2011-04-11 2017-10-31 Sharp Laboratories Of America, Inc. System for power allocation
US10045089B2 (en) 2011-08-02 2018-08-07 Apple Inc. Selection of encoder and decoder for a video communications session
US9264717B2 (en) * 2011-10-31 2016-02-16 Qualcomm Incorporated Random access with advanced decoded picture buffer (DPB) management in video coding
US9942580B2 (en) * 2011-11-18 2018-04-10 At&T Intellecutal Property I, L.P. System and method for automatically selecting encoding/decoding for streaming media
US20130138829A1 (en) * 2011-11-30 2013-05-30 Rovi Technologies Corporation Scalable video coding over real-time transport protocol
CN102547214B (zh) * 2012-02-22 2013-05-29 腾讯科技(深圳)有限公司 一种多人视频通信中的视频编码方法以及终端
EP2642755B1 (en) 2012-03-20 2018-01-03 Dolby Laboratories Licensing Corporation Complexity scalable multilayer video coding
EP2870770A2 (en) * 2012-07-09 2015-05-13 VID SCALE, Inc. Power aware video decoding and streaming
US9351196B2 (en) * 2012-08-31 2016-05-24 International Business Machines Corporation Byte caching in wireless communication networks
BR112015005387A2 (pt) * 2012-09-18 2017-07-04 Nec Corp dispositivo de codificação de vídeo, método de codificação de vídeo e programa de codificação de vídeo
FR2999373B1 (fr) * 2012-12-12 2018-04-06 Harmonic Inc. Procede d'adaptation dynamique du codage d'un flux audio et/ou video transmis a un dispositif
US10171804B1 (en) * 2013-02-21 2019-01-01 Google Llc Video frame encoding scheme selection
US9529749B2 (en) 2013-03-15 2016-12-27 Qualcomm Incorporated Data bus inversion (DBI) encoding based on the speed of operation
US10003792B2 (en) 2013-05-27 2018-06-19 Microsoft Technology Licensing, Llc Video encoder for images
WO2015059876A1 (ja) * 2013-10-22 2015-04-30 日本電気株式会社 ブロック構造決定回路およびブロック構造決定方法
WO2015139165A1 (en) 2014-03-17 2015-09-24 Microsoft Technology Licensing, Llc Encoder-side decisions for screen content encoding
US10264269B2 (en) 2014-10-13 2019-04-16 Apple Inc. Metadata hints to support best effort decoding for green MPEG applications
EP3038366A1 (en) * 2014-12-22 2016-06-29 Alcatel Lucent Devices and method for video compression and reconstruction
CN106416254B (zh) 2015-02-06 2019-08-02 微软技术许可有限责任公司 在媒体编码期间跳过评估阶段
US10136132B2 (en) 2015-07-21 2018-11-20 Microsoft Technology Licensing, Llc Adaptive skip or zero block detection combined with transform size decision
US10819997B2 (en) * 2016-01-20 2020-10-27 Arris Enterprises Llc Encoding video data according to target decoding device decoding complexity
KR102570005B1 (ko) * 2016-08-22 2023-08-23 삼성전자주식회사 무선 통신 시스템에서 전송 기법에 관련한 제어 정보의 시그널링 장치 및 방법
US10970363B2 (en) * 2017-10-17 2021-04-06 Microsoft Technology Licensing, Llc Machine-learning optimization of data reading and writing
EP3763128A4 (en) * 2018-03-14 2022-04-06 Mediatek Inc. METHOD AND APPARATUS PROVIDING AN OPTIMIZED DIVISION STRUCTURE FOR VIDEO CODING
US11830225B2 (en) * 2018-05-30 2023-11-28 Ati Technologies Ulc Graphics rendering with encoder feedback
CN109286825B (zh) * 2018-12-14 2021-04-30 北京百度网讯科技有限公司 用于处理视频的方法和装置
US11381867B2 (en) 2019-01-08 2022-07-05 Qualcomm Incorporated Multiple decoder interface for streamed media data
CN111866522A (zh) * 2019-04-29 2020-10-30 杭州海康威视数字技术股份有限公司 一种录像数据编码方法及装置
US11778224B1 (en) * 2021-11-29 2023-10-03 Amazon Technologies, Inc. Video pre-processing using encoder-aware motion compensated residual reduction

Family Cites Families (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4958226A (en) 1989-09-27 1990-09-18 At&T Bell Laboratories Conditional motion compensated interpolation of digital motion video
US5465119A (en) 1991-02-22 1995-11-07 Demografx Pixel interlacing apparatus and method
EP1330129A3 (en) 1991-04-10 2006-03-15 Mitsubishi Denki Kabushiki Kaisha Encoder and Decoder
US5313204A (en) * 1991-04-25 1994-05-17 Mitsubishi Denki Kabushiki Kaisha Encoding and decoding devices with predictor and detector
US5467136A (en) 1991-05-31 1995-11-14 Kabushiki Kaisha Toshiba Video decoder for determining a motion vector from a scaled vector and a difference vector
US5198901A (en) 1991-09-23 1993-03-30 Matsushita Electric Corporation Of America Derivation and use of motion vectors in a differential pulse code modulation system
US5414469A (en) 1991-10-31 1995-05-09 International Business Machines Corporation Motion video compression system with multiresolution features
US5408328A (en) 1992-03-23 1995-04-18 Ricoh Corporation, California Research Center Compressed image virtual editing system
JPH05316360A (ja) 1992-05-14 1993-11-26 Fuji Xerox Co Ltd 画像信号の符号化復号装置
JPH06326856A (ja) * 1993-05-17 1994-11-25 Hitachi Ltd データ記録装置および方法
CA2126467A1 (en) 1993-07-13 1995-01-14 Barin Geoffry Haskell Scalable encoding and decoding of high-resolution progressive video
KR970003102B1 (ko) 1993-09-17 1997-03-14 대우전자 주식회사 영상 복호기에서의 하프 픽셀 움직임 보상 회로
JP2956464B2 (ja) 1993-12-29 1999-10-04 日本ビクター株式会社 画像情報圧縮伸長装置
DE69535800D1 (de) 1994-06-08 2008-09-11 Matsushita Electric Ind Co Ltd Bildumsetzungsvorrichtung
JP3732867B2 (ja) 1995-03-09 2006-01-11 株式会社ルネサステクノロジ 画像伸張装置
US5742892A (en) 1995-04-18 1998-04-21 Sun Microsystems, Inc. Decoder for a software-implemented end-to-end scalable video delivery system
US5619256A (en) 1995-05-26 1997-04-08 Lucent Technologies Inc. Digital 3D/stereoscopic video compression technique utilizing disparity and motion compensated predictions
US5612735A (en) 1995-05-26 1997-03-18 Luncent Technologies Inc. Digital 3D/stereoscopic video compression technique utilizing two disparity estimates
US5999189A (en) 1995-08-04 1999-12-07 Microsoft Corporation Image compression to reduce pixel and texture memory requirements in a real-time image generator
US5786855A (en) 1995-10-26 1998-07-28 Lucent Technologies Inc. Method and apparatus for coding segmented regions in video sequences for content-based scalability
US6026183A (en) 1995-10-27 2000-02-15 Texas Instruments Incorporated Content-based video compression
JPH09182083A (ja) 1995-12-27 1997-07-11 Matsushita Electric Ind Co Ltd ビデオ画像符号化方法及び復号化方法とその装置
US5778097A (en) 1996-03-07 1998-07-07 Intel Corporation Table-driven bi-directional motion estimation using scratch area and offset valves
DE69740053D1 (de) 1996-08-07 2010-12-30 Panasonic Corp Vorrichtung zur decodierung und codierung von bild und ton, und informationsübertragungssystem
JP2003235041A (ja) 1996-08-07 2003-08-22 Matsushita Electric Ind Co Ltd リアルタイム画像符号化装置
JP3263807B2 (ja) 1996-09-09 2002-03-11 ソニー株式会社 画像符号化装置および画像符号化方法
KR100235347B1 (ko) 1996-09-19 1999-12-15 전주범 윤곽선 영상신호 부호화 방법 및 장치
US6341144B1 (en) 1996-09-20 2002-01-22 At&T Corp. Video coder providing implicit coefficient prediction and scan adaptation for image coding and intra coding of video
US5952943A (en) 1996-10-11 1999-09-14 Intel Corporation Encoding image data for decode rate control
JP2001502504A (ja) 1996-10-11 2001-02-20 サーノフ コーポレイション 立体視ビデオを符号化及び複号する装置及び方法
US5978509A (en) 1996-10-23 1999-11-02 Texas Instruments Incorporated Low power video decoder system with block-based motion compensation
US5886736A (en) 1996-10-24 1999-03-23 General Instrument Corporation Synchronization of a stereoscopic video sequence
US6173013B1 (en) 1996-11-08 2001-01-09 Sony Corporation Method and apparatus for encoding enhancement and base layer image signals using a predicted image signal
US6043846A (en) 1996-11-15 2000-03-28 Matsushita Electric Industrial Co., Ltd. Prediction apparatus and method for improving coding efficiency in scalable video coding
US6148026A (en) 1997-01-08 2000-11-14 At&T Corp. Mesh node coding to enable object based functionalities within a motion compensated transform video coder
US5960111A (en) 1997-02-10 1999-09-28 At&T Corp Method and apparatus for segmenting images prior to coding
US6347116B1 (en) 1997-02-14 2002-02-12 At&T Corp. Non-linear quantizer for video coding
US6005980A (en) 1997-03-07 1999-12-21 General Instrument Corporation Motion estimation and compensation of video object planes for interlaced digital video
US6404813B1 (en) 1997-03-27 2002-06-11 At&T Corp. Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
US6057884A (en) 1997-06-05 2000-05-02 General Instrument Corporation Temporal and spatial scaleable coding for video object planes
US6310857B1 (en) 1997-06-16 2001-10-30 At&T Corp. Method and apparatus for smoothing and multiplexing video data flows
US6226410B1 (en) 1997-06-30 2001-05-01 Intel Corporation Method and apparatus for providing image and video coding with iterative post-processing using transmitted step size information
US6351563B1 (en) 1997-07-09 2002-02-26 Hyundai Electronics Ind. Co., Ltd. Apparatus and method for coding/decoding scalable shape binary image using mode of lower and current layers
US6233356B1 (en) 1997-07-08 2001-05-15 At&T Corp. Generalized scalability for video coder based on video objects
US6993201B1 (en) 1997-07-08 2006-01-31 At&T Corp. Generalized scalability for video coder based on video objects
US6317131B2 (en) 1997-07-15 2001-11-13 At&T Corp. Interaction modalities for multimedia delivery and presentation using nodes
JPH11122624A (ja) 1997-10-16 1999-04-30 Matsushita Electric Ind Co Ltd ビデオデコーダ処理量を低減する方法および装置
JPH11127288A (ja) 1997-10-24 1999-05-11 Canon Inc 画像処理装置及びその方法並びにメモリ媒体
US6731811B1 (en) 1997-12-19 2004-05-04 Voicecraft, Inc. Scalable predictive coding method and apparatus
US6693201B1 (en) * 1998-09-08 2004-02-17 The Regents Of The University Of California Fluorescent photochromic fulgides, particularly for optical memories
US6412011B1 (en) 1998-09-14 2002-06-25 At&T Corp. Method and apparatus to enhance a multicast information stream in a communication network
JP2000125292A (ja) * 1998-10-13 2000-04-28 Matsushita Electric Ind Co Ltd ビデオデコーダの圧縮されたビットストリームの計算及び記録に必要な条件を制御する方法及び装置
JP2000244909A (ja) 1999-02-19 2000-09-08 Matsushita Electric Ind Co Ltd 圧縮ビデオのビットストリームの検定方法および装置
ES2259827T3 (es) 1998-10-13 2006-10-16 Matsushita Electric Industrial Co., Ltd. Regulacion de los requisitos de calculo y de memoria de un tren de bits comprimido en un decodificador de video.
US6600786B1 (en) * 1999-04-17 2003-07-29 Pulsent Corporation Method and apparatus for efficient video processing
JP2000347968A (ja) * 1999-06-02 2000-12-15 Hitachi Ltd メッセージ配信方法
US6625215B1 (en) * 1999-06-07 2003-09-23 Lucent Technologies Inc. Methods and apparatus for context-based inter/intra coding mode selection
CN1164121C (zh) * 1999-09-21 2004-08-25 皇家菲利浦电子有限公司 综合运动估值的方法
US6967597B1 (en) * 2000-11-08 2005-11-22 Lg Electronics, Inc. Method and apparatus for coding information, method and apparatus for decoding information, method of fabricating a recording medium, the recording medium and modulated signal
JP2001256144A (ja) * 2000-03-10 2001-09-21 Yamaha Corp クライアント装置、サーバ装置およびサーバクライアントシステム
US7221483B2 (en) * 2000-09-05 2007-05-22 Ricoh Company, Ltd. Image encoding method and apparatus, image decoding method and apparatus, image processing apparatus, image formation apparatus, and computer-executable programs
WO2003029989A1 (fr) * 2001-09-27 2003-04-10 Hitachi, Ltd. Systeme multisupport
US7355530B2 (en) 2001-11-21 2008-04-08 Canon Kabushiki Kaisha Method and device for determining at least one multimedia data encoding parameter
US20030112366A1 (en) 2001-11-21 2003-06-19 General Instrument Corporation Apparatus and methods for improving video quality delivered to a display device
JP3560958B2 (ja) * 2002-04-17 2004-09-02 三菱電機株式会社 動画符号化制御方法および装置
US20030198294A1 (en) 2002-04-23 2003-10-23 Andre Zaccarin Methods and apparatuses for selecting encoding options based on decoding energy requirements
KR20040007818A (ko) * 2002-07-11 2004-01-28 삼성전자주식회사 동영상 부호화를 위한 dct연산량 조절 방법 및 그 장치
JP2004064518A (ja) * 2002-07-30 2004-02-26 Nec Corp 動画像符号化方法、動画像符号化装置、およびコンピュータプログラム
MY134659A (en) * 2002-11-06 2007-12-31 Nokia Corp Picture buffering for prediction references and display
US7227901B2 (en) 2002-11-21 2007-06-05 Ub Video Inc. Low-complexity deblocking filter
US20040158878A1 (en) * 2003-02-07 2004-08-12 Viresh Ratnakar Power scalable digital video decoding
WO2005011255A2 (en) * 2003-06-26 2005-02-03 Thomson Licensing S.A. Multipass video rate control to match sliding window channel constraints
ATE411705T1 (de) 2003-06-27 2008-10-15 Nxp Bv Codierungsverfahren für tragbare vorrichtungen
US20050024651A1 (en) 2003-07-29 2005-02-03 Zhenghua Yu Adaptive complexity scalable post-processing method
US7457362B2 (en) 2003-10-24 2008-11-25 Texas Instruments Incorporated Loop deblock filtering of block coded video in a very long instruction word processor
WO2005084035A2 (en) 2004-02-06 2005-09-09 Apple Computer, Inc. Rate and quality controller for h.264/avc video coder and scene analyzer therefor
US20050195901A1 (en) * 2004-03-03 2005-09-08 Teemu Pohjola Video compression method optimized for low-power decompression platforms
US20050201469A1 (en) * 2004-03-11 2005-09-15 John Sievers Method and apparatus for improving the average image refresh rate in a compressed video bitstream
US7881386B2 (en) 2004-03-11 2011-02-01 Qualcomm Incorporated Methods and apparatus for performing fast mode decisions in video codecs
JP2005301457A (ja) * 2004-04-07 2005-10-27 Fuji Xerox Co Ltd 画像処理装置、プログラムおよび記録媒体
US8315307B2 (en) 2004-04-07 2012-11-20 Qualcomm Incorporated Method and apparatus for frame prediction in hybrid video compression to enable temporal scalability
JP4578197B2 (ja) 2004-09-29 2010-11-10 三洋電機株式会社 画像表示装置
JP2006115168A (ja) 2004-10-14 2006-04-27 Sony Corp 画像復号装置および画像表示装置
JP2006197186A (ja) * 2005-01-13 2006-07-27 Sharp Corp 画像符号化装置及び電池駆動復号器
JP4777988B2 (ja) 2005-01-27 2011-09-21 パナソニック株式会社 携帯端末
US8780997B2 (en) 2005-11-18 2014-07-15 Apple Inc. Regulation of decode-side processing based on perceptual masking
US8031777B2 (en) 2005-11-18 2011-10-04 Apple Inc. Multipass video encoding and rate control using subsampling of frames
US8937997B2 (en) 2006-03-16 2015-01-20 Apple Inc. Scalable video coding/multiplexing compatible with non-scalable decoders
US7535383B2 (en) * 2006-07-10 2009-05-19 Sharp Laboratories Of America Inc. Methods and systems for signaling multi-layer bitstream data
US8253752B2 (en) 2006-07-20 2012-08-28 Qualcomm Incorporated Method and apparatus for encoder assisted pre-processing
JP2008042566A (ja) 2006-08-07 2008-02-21 Toshiba Corp 情報処理装置および情報処理装置のデコード制御方法
US8711372B2 (en) * 2006-08-31 2014-04-29 Ricoh Co., Ltd. Techniques for image segment accumulation in document rendering
US7456760B2 (en) 2006-09-11 2008-11-25 Apple Inc. Complexity-aware encoding
US20080095238A1 (en) 2006-10-18 2008-04-24 Apple Inc. Scalable video coding with filtering of lower layers
US20080152009A1 (en) * 2006-12-21 2008-06-26 Emrah Akyol Scaling the complexity of video encoding
JP4747109B2 (ja) * 2007-01-15 2011-08-17 パナソニック株式会社 演算量調整装置
US20080181298A1 (en) 2007-01-26 2008-07-31 Apple Computer, Inc. Hybrid scalable coding
US7656318B2 (en) * 2007-01-29 2010-02-02 Ntt Docomo, Inc. Optimized content-based and royalty-based encoding and distribution of media data
US8619874B2 (en) 2007-04-13 2013-12-31 Apple Inc. Method and system for video encoding and decoding
US8582656B2 (en) 2007-04-13 2013-11-12 Apple Inc. Method and system for video encoding and decoding
US8345774B2 (en) 2008-01-11 2013-01-01 Apple Inc. Hypothetical reference decoder
US20090285308A1 (en) 2008-05-14 2009-11-19 Harmonic Inc. Deblocking algorithm for coded video
US20090304086A1 (en) 2008-06-06 2009-12-10 Apple Inc. Method and system for video coder and decoder joint optimization
TWI386068B (zh) 2008-10-22 2013-02-11 Nippon Telegraph & Telephone 解塊處理方法、解塊處理裝置、解塊處理程式及記錄該程式之可由電腦讀取之記錄媒體
US9131241B2 (en) 2008-11-25 2015-09-08 Microsoft Technology Licensing, Llc Adjusting hardware acceleration for video playback based on error detection
EP2396771A4 (en) 2009-02-13 2012-12-12 Research In Motion Ltd IN-LOOP DEFLECTION FOR INTRACODED PICTURES OR FRAMES

Also Published As

Publication number Publication date
US20150003515A1 (en) 2015-01-01
JP5404722B2 (ja) 2014-02-05
EP3723371A1 (en) 2020-10-14
US20080062018A1 (en) 2008-03-13
US8830092B2 (en) 2014-09-09
EP2070331B1 (en) 2017-07-19
US20090073005A1 (en) 2009-03-19
US7969333B2 (en) 2011-06-28
EP2410750A3 (en) 2013-10-09
EP2410750A2 (en) 2012-01-25
US20110234430A1 (en) 2011-09-29
EP2070331A2 (en) 2009-06-17
WO2008033830A2 (en) 2008-03-20
JP2012034389A (ja) 2012-02-16
US7456760B2 (en) 2008-11-25
JP2010503349A (ja) 2010-01-28
KR101103187B1 (ko) 2012-01-04
WO2008033830A3 (en) 2008-05-29
JP4865864B2 (ja) 2012-02-01

Similar Documents

Publication Publication Date Title
KR101103187B1 (ko) 복잡도 인식 인코딩
US11240498B2 (en) Independently coding frame areas
CN102461169B (zh) 基于运动的动态分辨率多比特率视频编码
US8804829B2 (en) Offline motion description for video generation
CN101107862B (zh) 编码装置及具备编码装置的动态图像记录系统
US9036699B2 (en) Video coding
TWI548265B (zh) Animation encoding apparatus, animation decoding apparatus, animation encoding method, animation decoding method, animation coding program, and animation decoding program
US20050232359A1 (en) Inter-frame prediction method in video coding, video encoder, video decoding method, and video decoder
US20070201554A1 (en) Video transcoding method and apparatus
US20190104315A1 (en) Scene Based Rate Control for Video Compression and Video Streaming
CN104539948A (zh) 视频处理系统和视频处理方法
JP2004363931A (ja) 階層符号化ビットストリームの再符号化方法および装置
US20070153891A1 (en) Method and apparatus for smoothing overall quality of video transported over a wireless medium
US20090190845A1 (en) Motion-compensated residue based temporal search range prediction
US20050201462A1 (en) Method and device for motion estimation in scalable video editing
US8862758B1 (en) System and method for controlling one or more media stream characteristics
CN117716389A (zh) 用于视频编解码的基于网络的图像滤波
Song et al. A sliding window approach to real-time H. 263+ frame rate adjustment

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151201

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161129

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181129

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20191127

Year of fee payment: 9