CN109246475B - 一种视频处理系统 - Google Patents

一种视频处理系统 Download PDF

Info

Publication number
CN109246475B
CN109246475B CN201810062729.XA CN201810062729A CN109246475B CN 109246475 B CN109246475 B CN 109246475B CN 201810062729 A CN201810062729 A CN 201810062729A CN 109246475 B CN109246475 B CN 109246475B
Authority
CN
China
Prior art keywords
video
data
buffer
write
bitstream
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201810062729.XA
Other languages
English (en)
Other versions
CN109246475A (zh
Inventor
吴明隆
郑佳韵
张永昌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MediaTek Inc
Original Assignee
MediaTek Inc
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 MediaTek Inc filed Critical MediaTek Inc
Publication of CN109246475A publication Critical patent/CN109246475A/zh
Application granted granted Critical
Publication of CN109246475B publication Critical patent/CN109246475B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4341Demultiplexing of audio and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4343Extraction or processing of packetized elementary streams [PES]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4363Adapting the video stream to a specific local network, e.g. a Bluetooth® network
    • H04N21/43632Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wired protocol, e.g. IEEE 1394
    • H04N21/43635HDMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4363Adapting the video stream to a specific local network, e.g. a Bluetooth® network
    • H04N21/43637Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wireless protocol, e.g. Bluetooth, RF or wireless LAN [IEEE 802.11]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/127Updating a frame memory using a transfer of data from a source area to a destination area
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10629Data buffering arrangements, e.g. recording or playback buffers the buffer having a specific structure
    • G11B2020/10666Ring buffers, e.g. buffers wherein an iteratively progressing read or write pointer moves back to the beginning of the buffer when reaching the last storage cell
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10675Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control
    • G11B2020/1074Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control involving a specific threshold value
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/1075Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data
    • G11B2020/10759Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data content data
    • G11B2020/10768Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data content data by pre-caching the initial portion of songs or other recorded or downloaded data for starting playback instantly
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/1075Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data
    • G11B2020/10787Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data parameters, e.g. for decoding or encoding
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/1075Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data
    • G11B2020/10796Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data address data

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明提供一种视频处理系统。该视频处理系统包括存储设备、音频/视频解多路复用电路和视频解码器。所述存储设备包括比特流缓存器,其为环形缓存器。所述音频/视频解多路复用电路接收输入数据,并对所述输入数据执行音频/视频解多路复用操作,以将视频比特流的数据写入到所述环形缓存器内。所述视频解码器从所述比环形缓存器中获取所述视频比特流的数据,并对获取到的所述视频比特流的数据执行视频解码操作。本发明通过使用环形缓存器,降低访问延时的同时,降低缓存器成本。

Description

一种视频处理系统
技术领域
本发明的所公开实施例涉及视频数据处理,且更具体而言,涉及一种使用环形缓存器(ring buffer)和竞赛模式(racing-mode)环形缓存器访问控制方案的视频处理系统。
背景技术
一个传统的视频系统设计包括视频发送系统(其可用作视频记录系统)和视频接收系统(其可用作视频播放系统)。关于视频发送系统,其由多个处理阶段构成,包括视频编码器、音频/视频多路复用电路、发送电路等。关于视频接收系统,其由多个处理阶段构成,包括接收电路、音频/视频多路解复用电路、视频解码器、显示器等。然而,由于视频接收系统中超长播放时间,传统的视频系统设计无法满足某些超低延时应用的要求。因此,需要一种具有新型低延时和高性能的视频接收系统。
发明内容
根据本发明的示例的实施例,本发明提出一种使用环形缓存器和竞赛模式环形缓存器访问控制方案的视频处理系统来解决上述问题。
根据本发明的第一方面,公开一种示例性的视频处理系统。所述示例性的视频处理系统包括存储设备、音频/视频解多路复用电路和视频解码器。存储设备包括比特流缓存器,其中所述比特流缓存器为环形缓存器。音频/视频解多路复用电路用于接收输入数据,并对所述输入数据执行音频/视频解多路复用操作以将视频比特流的数据写入到所述环形缓存器内。视频解码器用于从所述环形缓存器中获取所述视频比特流的数据,并对所述获取的所述视频比特流的数据执行视频解码操作。
根据本发明的第二方面,公开一种示例性的视频处理系统。所述示例性的视频处理系统包括存储设备、视频解码器和显示引擎。存储设备包括显示缓存器,其中所述显示缓存器为环形缓存器。视频解码器用于对视频比特流的数据执行视频解码操作,以将重构视频帧的像素数据写入所述环形缓存器内。显示引擎用于从所述环形缓存器中获取所述重构视频帧的像素数据,并根据所述获取的所述重构视频帧的像素数据驱动显示设备。
根据本发明的第三方面,公开一种示例性的视频处理系统。所述示例性的视频处理系统包括存储设备、接收电路和音频/视频解多路复用电路。存储设备包括数据缓存器,其中所述数据缓存器为环形缓存器。接收电路用于接收数据包,并解压所述数据包以将所述数据包的有效载荷数据写入到所述环形缓存器内。音频/视频解多路复用电路用于从所述环形缓存器中获取输入数据,并对所述获取的输入数据执行音频/视频解多路复用操作,其中所述获取的输入数据包括至少一个所述数据包的有效载荷数据。
本发明通过在视频接收系统内不同处理阶段之间使用环形缓存器,避免视频帧处理过程中的下溢或者上溢,进而减低访问延时,同时降低缓存器成本。
在阅读以下对各图及图式中所例示的优选实施例的详细说明之后,本发明的这些及其它目标无疑将对所属领域的技术人员显而易见。
附图说明
图1是例示根据本发明实施例的视频接收系统的结构示意图。
图2是例示根据本发明实施例的第一视频处理系统的示意图。
图3是例示根据本发明实施例的使用环形缓存器所实现的比特流缓存器的示意图。
图4是例示根据本发明实施例的控制比特流缓存器的写操作的方法的流程图。
图5是例示根据本发明实施例的控制比特流缓存器的读操作的方法的流程图。
图6是例示根据本发明实施例的第二视频处理系统的示意图。
图7是例示根据本发明实施例的使用环形缓存器所实现的显示缓存器的示意图。
图8是例示根据本发明实施例的显示控制方法的流程图。
图9是例示根据本发明实施例的第三视频处理系统的示意图。
图10是例示根据本发明实施例的使用环形缓存器所实现的数据缓存器的示意图。
图11是例示根据本发明实施例的控制数据缓存器的写操作的方法的流程图。
图12是例示根据本发明实施例的控制数据缓存器的读操作的方法的流程图。
图13是例示根据本发明实施例的帧基地址切换电路的示意图。
图14是例示根据本发明实施例的显示设备所显示的视频帧的示意图。
具体实施方式
本说明书及权利要求书通篇中所用的某些用语指代特定部件。如所属领域的技术人员可以理解的是,电子设备制造商可利用不同名称来指代同一个部件。本文并非以名称来区分部件,而是以功能来区分部件。在以下说明书及权利要求书中,用语“包括”是开放式的限定词语,因此其应被解释为意指“包括但不限于…”。另外,用语“耦合”旨在意指间接电连接或直接电连接。因此,当一个装置耦合到另一装置时,则这种连接可以是直接电连接或通过其他装置及连接部而实现的间接电连接。
图1是根据本发明实施例的视频接收系统的结构示意图。视频接收系统120通过通信链路110与视频发送系统100进行通信。举例但不限于,该视频发送系统100和视频接收系统120可以应用于超低延时应用,如虚拟现实(virtual reality,VR)应用。在本实施例中,视频接收系统120包括接收(receiving,RX)电路112,存储设备124、音频/ 视频解多路复用电路(用“A/V DEMUX”表示)126、视频解码器(用“VDEC”表示)128、显示引擎130和显示控制电路132。存储设备124 包括数据缓存器134、比特流缓存器136、显示缓存器138和参考帧缓存器139。
视频发送系统100用作视频记录系统,其用于编码由一个或多个视频源(未示出)所提供的视频帧,然后通过通信链路110将编码的视频数据发送给视频接收系统120。视频接收系统120用作视频播放系统,其用于接收来自于通信链路110的编码的视频帧数据,然后解码编码的视频帧数据,以生成重构视频帧至显示设备140,进而用于视频播放。例如,显示设备140可以是VR头盔的显示屏。此外,通信链路110可以由有线通信链路或者无线通信链路来实现。
接收电路122接收来自通信链路110的数据包,并解压该数据包,以将该数据包的有效载荷数据写入到数据缓存器134。该数据包的有效载荷数据包括编码视频数据、编码音频数据和其他用户定义的数据。音频/视频解多路复用电路126从数据缓存器134获取输入数据,并对获取的输入数据执行音频/视频解多路复用操作,其中获取的输入数据包括由接收电路122所接收的至少一个数据包的有效载荷数据。由于音频/视频解多路复用,分离出视频比特流和音频比特流,并分别将其转发至比特流缓存器136和音频数据路径133。换句话说,音频/视频解多路复用电路126对获取的输入数据执行音频/视频解多路复用操作,从而将视频比特流的数据写入到比特流缓存器136内,并将音频比特流的数据提供给音频数据路径133。音频数据路径133解码音频比特流以获得用于音频播放的音频数据。关于视频处理和播放,视频解码器128从比特流缓存器136获取视频比特流的数据,并对获取的视频比特流的数据执行视频解码操作,以将重构视频帧的像素数据写入到显示缓存器138内。
可以使用帧内预测模式或者帧间预测模式来编码视频帧内的编码块。当使用帧间预测模式编码当前视频帧内的编码块时,在参考帧内查找到预测块,该预测块用于重构该当前视频帧的编码块,该参考帧是一个之前重构的视频帧,并存储在参考帧缓存器139内。因此,还将由视频解码器128解码前一视频帧而生成的重构视频帧存储在参考帧缓存器139内,从而作为用于解码当前视频帧的参考帧。
显示引擎130是由显示控制电路132控制的驱动电路。显示引擎 130从显示缓存器138获取重构视频帧的像素数据,并根据所获取的重构视频帧的像素数据驱动显示设备140。
在本实施例中,存储设备124使用内部存储设备、外部存储设备或者其结合所实现。例如,内部存储设备可以是静态随机存取存储器 (static random access memory,SRAM),或者触发器(flip-flop)。外部存储设备可以是动态随机存取存储器(dynamicrandom access memory,DRAM)或者闪存。
由于视频接收系统120内的不同处理阶段具有不同的数据处理速度,一个缓存器耦接不同处理阶段之间。如图1所示,数据缓存器134 耦接于前面的接收电路122和后面的音频/视频解多路复用电路126之间,比特流缓存器136耦接于前面的音频/视频解多路复用电路126和后面视频解码器128之间,以及显示缓存器138耦接于前面的视频解码器 128和后面的显示引擎130之间。如果通过使用小型缓存器来实现一个耦接于具有不同数据处理速度的不同处理阶段之间的缓存器,在一个视频帧的处理期间,该小型缓存器会遇到下溢或者上溢,从而导致额外的读取延时。如果通过使用大型缓存器来实现一个耦接于具有不同数据处理速度的不同处理阶段之间的缓存器,在一个视频帧的处理期间,以缓存器成本为代价,该大型缓存器可以避免下溢或者上溢。在本实施例中,通过使用环形缓存器来实现数据缓存器134、比特流缓存器136和显示缓存器138中至少一个。由于环形缓存器的内部特性,可以重复使用小型环形缓存器的存储空间,这样,小型环形缓存器可以用作大型缓存器。此外,采用竞赛模式环形缓存器访问控制方案可以防止后续处理阶段从该环形缓存器中获取错误的数据,和/或防止前面的处理阶段重写还没有被后续处理阶段处理的缓存数据。简言之,本发明提出在视频接收系统内不同处理阶段之间使用环形缓存器,从而实现访问延时和缓存器成本之间的平衡。
图2是根据本发明实施例的第一视频处理系统的示意图。该视频处理系统200是如图1所示的视频接收系统120的一部分。在本实施例中,视频处理系统200包括音频/视频解多路复用电路126、视频解码器 128和比特流缓存器136。此外,该比特流缓存器136由如图3所示的环形缓存器来实现。进一步地,采用竞赛模式环形缓存器访问控制方案,以防止视频解码器128从该环形缓存器(例如,比特流缓存器136)获取错误的数据,并防止音频/视频解多路复用电路126覆盖视频解码器 128还没有处理的缓存数据。
如图3所示,比特流缓存器136是一个环形缓存器,其具有顶部地址v_start和底部地址v_end。在一个实施例中,顶部地址v_start和底部地址v_end可以是物理地址,其定义了连续的物理存储空间。在另一个实施例中,顶部地址v_start和底部地址v_end可以是虚拟地址,其定义了连续的逻辑存储空间。因此,总比特流缓存器大小等于(v_start- v_end)。可以按照从顶部地址v_start到底部地址v_end的方向,然后从底部地址v_end返回到顶部地址v_start,来访问(读/写)该比特流缓存器136。
在一个视频帧的输入数据(其包含编码的视频数据和编码的音频数据)的音频/视频解多路复用期间,音频/视频解多路复用电路126将视频比特流的数据写入到比特流缓存器136内,从而写指针wptr(其表示将视频比特流的数据写入到比特流缓存器136的当前写地址)向下移动。具体地,音频/视频解多路复用电路126分析输入数据(其包含编码的视频数据和编码的音频数据),并将视频比特流的数据写入到比特流缓存器136内。因此,音频/视频解多路复用电路126根据存储在比特流缓存器136内的视频数据的大小更新该写指针wptr。当该写指针 wptr达到底部地址v_end时,该写指针wptr将返回到顶部地址v_start,从而将视频比特流的数据无间隙地继续写入到比特流缓存器136内。
在一个视频帧的视频比特流的视频解码期间,视频解码器128从比特流缓存器136中读取视频比特流的数据,从而读指针rptr(其表示从比特流缓存器136中读取视频比特流的数据的当前读地址)向下移动。当该读指针rptr达到底部地址v_end时,该读指针rptr将返回到顶部地址v_start,从而从比特流缓存器136中无间隙地继续读取视频比特流的数据。
在视频解码器128读取并处理存储在比特流缓存器136内的旧数据部分之后,可以重复使用缓存该旧数据部分的存储空间,以缓存音频/视频解多路复用电路126所生成的新数据部分。此外,在音频/视频解多路复用电路126所生成的新数据部分覆盖旧数据部分(其已由视频解码器128读取并处理)之后,视频解码器128再次读取该存储空间,以获取新数据部分。由于环形缓存器的内部特性,写指针wptr跟随读指针rptr,并且,读指针rptr也跟随写指针wptr。写指针wptr和读指针rptr 之间使用竞赛模式,以控制作为环形缓存器的比特流缓存器136的访问(读/写)。根据竞赛模式环形缓存器访问控制方案,音频/视频解多路复用电路126包括将写指针wptr更新到视频解码器128的写控制器 202,以及视频解码器128包括将读指针rptr更新到音频/视频解多路复用电路126的读控制器204。
图4是根据本发明实施例的控制比特流缓存器136的写操作的方法的流程图。假设结果本质上是相同的,无需严格按照图4所示的顺序执行步骤。写控制器202采用如图4所示的方法。在步骤402中,写控制器202设置初始起点位置,其中,起点表示音频/视频解多路复用电路126将视频比特流存储到比特流缓存器136的起始地址。由于比特流缓存器136是环形缓存器,该初始起点位置设置为顶部地址v_start 和底部地址v_end之间的一个地址。此外,开始将视频比特流存储到比特流缓存器136的时候,将视频比特流的第一数据部分写入到写地址所寻址的存储字节,该写地址即是初始起点位置。
在步骤404中,写控制器202比较其写指针wptr与接收到的读指针 rptr,以检测写指针wptr与读指针rptr之间的差是否没有达到阈值(例如,wptr!=rptr-1)。当写指针wptr与读指针rptr之间的差没有达到该阈值时(例如,wptr!=rptr-1),写控制器202继续或者恢复(resume) 将视频比特流写入到比特流缓存器136内(步骤408)。在本实施例中,该阈值等于写指针wptr递增的步长(step size)。但是,此仅用于示例目的,不用于限制本发明。
当写指针wptr与读指针rptr之间的差达到该阈值时,(例如, wptr==rptr-1),意味着写指针wptr将很快追上读指针rptr,此时,写控制器202停止将视频比特流写入到比特流缓存器136中(步骤406)。这样,竞赛模式环形缓存器访问控制方案防止音频/视频解多路复用电路126覆盖掉视频解码器128还没有处理的编码视频数据。直到视频解码器128将读指针rptr更新为新的值,写控制器202才恢复将视频比特流写入到比特流缓存器136。因此,在暂停将视频比特流写入到比特流缓存器136的情况下,当由于读指针rptr更新为新的值而使得写指针 wptr与读指针rptr之间的差没有达到该阈值(例如,wptr!=rptr-1)时,写控制器202将恢复将视频比特流写入到比特流缓存器136中(步骤 404和408)。
在步骤408中,写控制器202更新写指针wptr,以移动该写指针 wptr,进而将视频比特流写入到比特流缓存器136的下一个写地址中。例如,写控制器202根据如下伪码更新写指针wptr。
Figure BDA0001555802180000081
Figure BDA0001555802180000091
在根据更新后的写指针wptr将视频比特流写入到比特流缓存器 136之后,写控制器202检测是否存在需要存储到比特流缓存器136中的更多数据(步骤410)。当不存在需要存储到比特流缓存器136中的数据时,结束写操作。否则控制流程继续到步骤404。
图5是根据本发明实施例的控制比特流缓存器136的读操作的方法的流程图。假设结果本质上是相同的,无需严格按照图5所示的顺序执行步骤。读控制器204采用如图5所示的方法。在步骤502中,读控制器204检测起始起点位置是否在顶部地址v_start和底部地址v_end 之间。如上所述,起点表示存储到为环形缓存器的比特流缓存器136 中的视频比特流的起始地址。仅当起始起点位置在顶部地址v_start和底部地址v_end之间时,激活竞赛模式环形缓存器访问控制方案。因此,当起始起点位置在顶部地址v_start和底部地址v_end之间时,控制流程继续至步骤504。
在步骤504中,读控制器204比较其读指针rptr与接收到的写指针 wptr,以检测读指针rptr是否没有追上写指针wptr(例如,rptr!= wptr)。当读指针rptr没有追上写指针wptr时(例如,rptr!=wptr),读控制器204继续或者恢复从比特流缓存器136中读取视频比特流的数据(步骤508)。
然而,当读指针rptr追上写指针wptr时(例如,rptr==wptr),读控制器204停止从比特流缓存器136中读取视频比特流的数据。这样,竞赛模式环形缓存器访问控制方案防止视频解码器128从比特流缓存器136中获取错误的编码的视频数据。直到音频/视频解多路复用电路 126将写指针wptr更新为新的值,读控制器204才恢复从比特流缓存器 136中读取视频比特流的数据。因此,在暂停从比特流缓存器136中读取视频比特流的数据的情况下,当由于写指针wptr更新为新的值而使得读指针rptr没有追上写指针wptr(例如,rptr!=wptr)时,读控制器 204将恢复从比特流缓存器136中读取视频比特流的数据(步骤504和508)。
在步骤508中,读控制器204计算读取长度,该读取长度表示仍然等待从比特流缓存器136获取到视频解码器128的数据的数量,从而用于进一步处理。例如,读控制器204根据如下伪码计算该读取长度。
Figure BDA0001555802180000101
在步骤510中,读控制器204更新读指针rptr,以移动该读指针rptr,从而从比特流缓存器136的下一个读地址中读取视频比特流的数据。例如,读控制器204根据如下伪码更新读指针rptr。
Figure BDA0001555802180000102
在根据更新后的读指针rptr从比特流缓存器136中读取视频比特流的数据之后,读控制器204检测帧解码操作是否完成(步骤512)。当帧解码操作完成时,结束读操作。否则控制流程继续到步骤504。
图6是根据本发明实施例的第二视频处理系统的示意图。该视频处理系统600是如图1所示的视频接收系统120的一部分。在本实施例中,视频处理系统600包括视频解码器128、显示引擎130、显示控制电路132和显示缓存器138。此外,该显示缓存器138由如图7所示的环形缓存器来实现。采用竞赛模式环形缓存器访问控制方案,以防止视频解码器128覆盖显示引擎130还没有使用以用于视频播放的缓存的像素数据。
如图7所示,显示缓存器138是一个环形缓存器,其具有顶部地址 Buf_start和底部地址Buf_end。在一个实施例中,顶部地址Buf_start和底部地址Buf_end可以是物理地址,其定义了连续的物理存储空间。在另一个实施例中,顶部地址Buf_start和底部地址Buf_end可以是虚拟地址,其定义了连续的逻辑存储空间。因此,总的显示缓存器大小等于(Buf_start-Buf_end)。例如,总的显示缓存器大小等于n(n≧2)行编码块行的像素数据的数量,其中每个编码块包含m(m≧1)条像素线 (pixel line)。编码块是视频编码标准的基本处理单元。例如,当视频编码标准为H.264时,一个编码块是一个宏块(macroblock,MB)。又例如,当视频编码标准为VP9时,一个编码块是一个超级块(super block,SB)。还例如,当视频编码标准为高效视频编码(HEVC,High Efficiency Video Coding)时,一个编码块是一个编码树单元(coding tree unit,CTU)。
由于显示缓存器138是一个环形缓存器,可以按照顶部地址 Buf_start到底部地址Buf_end的方向,然后从底部地址Buf_end返回到顶部地址Buf_start来访问(读/写)该显示缓存器138,。
在一个视频帧的视频解码期间,视频解码器128将重构视频帧的像素数据写入到显示缓存器138内,从而像素数据的写地址向下移动。当写地址到达底部地址Buf_end时,写地址将返回到顶部地址 Buf_start,从而将该重构视频帧的像素数据无间隙地写入到显示缓存器138内。
在重构视频帧的视频播放期间,显示引擎130从显示缓存器138中读取该重构视频帧的像素数据,进而该像素数据的读地址向下移动。当读地址到达底部地址Buf_end时,该读地址将返回到顶部地址 Buf_start,从而从显示缓存器138中无间隙地继续读取该重构视频帧的像素数据。
在显示引擎130读取并处理存储在显示缓存器138内的旧数据部分之后,可以重复使用缓存该旧数据部分的存储空间,以缓存视频解码器128所生成的新数据部分。此外,在视频解码器128所生成的新数据部分覆盖旧数据部分(其已由显示引擎130读取并处理)之后,显示引擎130再次读取该存储空间,以获取新数据部分。除非显示缓存器138内已经存在一些可用的视频帧的像素数据,否则不开始视频帧的视频播放。由于环形缓存器的内部特性,写地址跟随读读地址。为了实现流畅的视频播放,不能停止显示缓存器138的读操作。因此,读操作和写操作之间采用竞赛模式,以控制为环形缓存器的显示缓存器138的写操作。根据竞赛模式环形缓存器访问控制方案,视频解码器128包括重构线计数器602,其维护重构线计数值R_Line,该计数值 R_Line表示视频解码器128所重构的像素线的数量,以及显示引擎130 包括显示线计数器604,其维护显示线计数值D_Line,该计数值D_Line 表示通过显示引擎130在显示设备140上所显示的像素线的数量。
在本实施例中,视频解码器128用于执行基于块的解码,显示引擎130用于执行基于扫描线的显示。因此,每次完全解码一个编码块行时,重构线计数器602将给该重构线计数值R_Line加上第一递增值 (例如,等于一个编码块的高度的值)。例如,假设一个编码块在列方向上有N个像素,当完全解码一个编码块行时,该重构线计数值 R_Line更新为R_Line+N。此外,每次完全显示一个像素线时,显示线计数器604将给显示线计数值D_Line增加第二递增值(例如,1)。例如,当完全显示一个像素线时,显示线计数值D_Line将更新为D_Line+1。
图8是根据本发明实施例的显示控制方法的流程图。假设结果本质上是相同的,无需严格按照图8所示的顺序执行步骤。显示控制电路132采用如图8所示的方法。在本实施例中,视频解码器128更新重构线计数值R_Line至显示控制电路132,显示引擎130更新显示线计数值D_Line至显示控制电路132。因此,显示控制电路132可以参考重构线计数值R_Line以了解当前视频帧的解码状态,并且参考显示线计数值D_Line以了解当前视频帧的显示状态。开始时,显示控制电路132 比较重构线计数值R_Line与显示线计数值D_Line,以判断是否开始重构视频帧的视频播放。当R_Line≧D_Line,显示控制电路132给显示引擎分配帧基地址(frame base address)ADDR,其中该帧基地址表示视频解码器128将该重构视频帧存储到显示缓存器138内的起始地址。
在步骤804中,显示控制电路132比较重构线计数值R_Line与显示线计数值D_Line,以判断是否停止显示缓存器138的读操作。在本例子中,显示控制电路132检测重构线计数值R_Line与显示线计数值 D_Line之间的差是否没有达到阈值(例如,R_Line!=D_Line+k),其中,根据实际设计考虑,阈值k可以设置为任何正整数值。当重构线计数值R_Line与显示线计数值D_Line之间的差没有达到该阈值时, (例如,R_Line!=D_Line+k),显示控制电路132将没有使能控制信号Sctrl以指示视频解码器128不停止将重构视频帧的像素数据写入到显示缓存器138内。随后,流程继续至步骤810,进而显示引擎130从显示缓存器138中继续读取重构视频帧的像素数据,并驱动显示设备140 显示重构视频帧的像素数据。因此,在步骤810中,通过显示引擎130 在显示设备140上显示一个像素线,并且相应地显示线计数器604更新显示线计数值D_Line(例如,D_Line=D_Line+1)。
然而,当重构线计数值R_Line与显示线计数值D_Line之间的差达到该阈值时,(例如,R_Line==D_Line+k),意味着视频解码速度比视频播放速度更快,显示控制电路132使能控制信号Sctrl以指示视频解码器128停止将重构视频帧的像素数据写入到显示缓存器138内(步骤806)。这样,竞赛模式环形缓存器访问控制方案防止视频解码器 128覆盖显示引擎130还没有使用以用于视频播放的缓存的像素数据。如上所述,为了实现流畅的视频播放,不能暂停显示缓存器138的读操作。随后,流程继续到步骤808,进而显示引擎130从显示缓存器138 中继续读取重构视频帧的像素数据,并驱动显示设备140显示重构视频帧的像素数据。相似地,在步骤808中,显示线计数器604相应地更新显示线计数值D_Line(例如,D_Line=D_Line+1)。
直到显示引擎130(特别是显示线计数器604)更新显示线计数值 D_Line为新的值时,显示控制电路132才指示视频解码器128将重构视频帧的像素数据恢复写入到显示缓存器138。因此,在暂停将视频比特流写入到显示缓存器138的情况下,当由于显示线计数值D_Line更新为新的值而使得重构线计数值R_Line与显示线计数值D_Line之间的差没有达到该阈值时(例如,R_Line!=D_Line+k),显示控制电路132禁能(de-assert)控制信号Sctrl以指示视频解码器128恢复写入重构视频帧的像素数据到显示缓存器138内(步骤804和810)。
在步骤812中,显示控制电路132检测是否存在需要显示的更多像素线。当不存在需要显示的像素线时,结束显示控制操作。否则控制流程继续到步骤804。
图9是根据本发明实施例的第三视频处理系统的示意图。该视频处理系统900是如图1所示的视频接收系统120的一部分。在本实施例中,视频处理系统900包括接收电路122、音频/视频多路解复用电路126 和数据缓存器134。此外,该数据缓存器134由如图10所示的环形缓存器来实现。进一步地,采用竞赛模式环形缓存器访问控制方案,以防止音频/视频多路解复用电路126从环形缓存器(例如,数据缓存器134) 中获取错误的数据,并且防止接收电路122覆盖音频/视频多路解复用电路126还没有处理的缓存数据。
在一个示例设计中,如图1所示的通信链路110可以是无线通信链路。因此,接收电路122用于接收来自无线通信链路的数据包。例如,接收电路122可以是无线保真(WirelessFidelity,WiFi)接收器,但是此仅用于示例目的,并不用于限制本发明。
在另一个示例设计中,如图1所示的通信链路110可以是有线通信链路。因此,接收电路122用于接收来自有线通信链路的数据包。例如,接收电路122可以是通用串行总线(Universal Serial Bus,USB) 接收器或者高分辨率多媒体接口(High-DefinitionMultimedia Interface,HDMI)接收器,但是此仅用于示例目的,并不用于限制本发明。
如图10所示,数据缓存器134是一个环形缓存器,其具有顶部地址v_start和底部地址v_end。在一个实施例中,顶部地址v_start和底部地址v_end可以是物理地址,其定义了连续的物理存储空间。在另一个实施例中,顶部地址v_start和底部地址v_end可以是虚拟地址,其定义了连续的逻辑存储空间。因此,总的数据缓存器大小等于(v_start- v_end)。可以按照从顶部地址v_start到底部地址v_end的方向,然后从底部地址v_end返回到顶部地址v_start,来访问(读/写)该数据缓存器 134。
在一个视频帧的数据包的接收期间,接收电路122将数据包的有效载荷数据写入到数据缓存器134内,从而写指针wptr(其表示将数据包的有效载荷数据写入到数据缓存器134的当前写地址)向下移动。具体地,接收电路122接收来自通信链路110的数据包,并解包接收到的数据包,以将包含在该接收到的数据包内的有效载荷数据写入到数据缓存器134内。因此,接收电路122根据接收到的数据包的数量和包含在每个接收到的数据包内的有效载荷数据的大小更新该写指针 wptr。当该写指针wptr达到底部地址v_end时,该写指针wptr将返回到顶部地址v_start,从而将数据包的有效载荷数据无间隙地继续写入到数据缓存器134内。
在一个视频帧的输入数据(其包含至少一个数据包的有效载荷数据)的音频/视频解多路复用期间,音频/视频解多路复用电路126从数据缓存器134中读取该输入数据,从而读指针rptr(其表示从数据缓存器134中读取输入数据的当前读地址)向下移动。当该读指针rptr达到底部地址v_end时,该读指针rptr将返回到顶部地址v_start,从而从数据缓存器134中无间隙地继续读取输入数据。
在音频/视频解多路复用电路126读取并处理存储在数据缓存器 134内的旧数据部分之后,可以重复使用缓存该旧数据部分的存储空间,以缓存接收电路122所生成的新数据部分。此外,在接收电路122 所生成的新数据部分覆盖旧数据部分(其已由音频/视频解多路复用电路126读取并处理)之后,音频/视频解多路复用电路126再次读取该存储空间,以获取新数据部分。由于环形缓存器的内部特性,写指针wptr 跟随读指针rptr,并且,读指针rptr也跟随写指针wptr。写指针wptr和读指针rptr之间使用竞赛模式,以控制为环形缓存器的数据缓存器134 的访问(读/写)。根据竞赛模式环形缓存器访问控制方案,接收电路122包括将写指针wptr更新到音频/视频解多路复用电路126的写控制器902,以及音频/视频解多路复用电路126包括将读指针rptr更新到接收电路122的读控制器904。
图11是根据本发明实施例的控制数据缓存器134的写操作的方法的流程图。假设结果本质上是相同的,无需严格按照图11所示的顺序执行步骤。写控制器902采用如图11所示的方法。在步骤1102中,写控制器902设置初始起点位置,其中,起点表示接收电路122将有效载荷数据存储到数据缓存器134的起始地址。由于数据缓存器134是环形缓存器,该初始起点位置设置为顶部地址v_start和底部地址v_end之间的一个地址。此外,开始将数据包的有效载荷数据存储到数据缓存器 134的时候,将有效载荷数据的第一数据部分写入到写地址所寻址的存储字节,该写地址即是初始起点位置。
在步骤1104中,写控制器902比较其写指针wptr与接收到的读指针 rptr,以检测写指针wptr与读指针rptr之间的差是否没有达到阈值(例如,wptr!=rptr-1)。当写指针wptr与读指针rptr之间的差没有达到该阈值时(例如,wptr!=rptr-1),写控制器902继续或者恢复将数据包的有效载荷数据写入到数据缓存器134内(步骤1108)。在本实施例中,该阈值等于写指针wptr递增的步长。但是,此仅用于示例目的,不用于限制本发明。
然而,当写指针wptr与读指针rptr之间的差达到该阈值时,(例如, wptr==rptr-1),意味着写指针wptr将很快追上读指针rptr,此时,写控制器902停止将数据包的有效载荷数据写入到数据缓存器134中(步骤1106)。这样,竞赛模式环形缓存器访问控制方案防止接收电路122 覆盖掉音频/视频解多路复用电路126还没有处理的有效载荷数据。直到音频/视频解多路复用电路126将读指针rptr更新为新的值,写控制器 902才恢复将数据包的有效载荷数据写入到数据缓存器134。因此,在暂停将数据包的有效载荷数据写入到数据缓存器134的情况下,当由于读指针rptr更新为新的值而使得写指针wptr与读指针rptr之间的差没有达到该阈值(例如,wptr!=rptr-1)时,写控制器902恢复将数据包的有效载荷数据写入到数据缓存器134中(步骤1104和1108)。
在步骤1108中,写控制器902更新写指针wptr,以移动该写指针 wptr,进而将有效数据载荷数据写入到数据缓存器134的下一个写地址中。例如,写控制器902根据如下伪码更新写指针wptr。
Figure BDA0001555802180000171
在根据更新后的写指针wptr将数据包的有效载荷数据写入到数据缓存器134之后,写控制器902检测是否存在需要存储到数据缓存器 134中的更多数据(步骤1110)。当不存在需要存储到数据缓存器134 中的数据时,结束写操作。否则控制流程继续到步骤1104。
图12是根据本发明实施例的控制数据缓存器134的读操作的方法的流程图。假设结果本质上是相同的,无需严格按照图12所示的顺序执行步骤。读控制器904采用如图12所示的方法。在步骤1202中,读控制器904检测起始起点位置是否在顶部地址v_start和底部地址 v_end之间。如上所述,起点表示存储到为环形缓存器的数据缓存器 134中的有效载荷数据的起始地址。仅当起始起点位置在顶部地址 v_start和底部地址v_end之间时,激活竞赛模式环形缓存器访问控制方案。因此,当起始起点位置在顶部地址v_start和底部地址v_end之间时,控制流程继续至步骤1204。
在步骤1204中,读控制器904比较其读指针rptr与接收到的写指针wptr,以检测读指针rptr是否没有追上写指针wptr(例如,rptr!= wptr)。当读指针rptr没有追上写指针wptr时(例如,rptr!=wptr),读控制器904继续或者恢复从数据缓存器134中读取有效载荷数据的数据(步骤1208)。
然而,当读指针rptr追上写指针wptr时(例如,rptr==wptr),读控制器904停止从数据缓存器134中读取数据包的有效载荷数据。这样,竞赛模式环形缓存器访问控制方案防止音频/视频解多路复用电路 126从数据缓存器134中获取错误的有效载荷数据。直到接收电路122 将写指针wptr更新为新的值,读控制器904才恢复从数据缓存器134中读取数据包的有效载荷数据。因此,在暂停从数据缓存器134中读取数据包的有效载荷数据的情况下,当由于写指针wptr更新为新的值而使得读指针rptr没有追上写指针wptr(例如,rptr!=wptr)时,读控制器904将恢复从数据缓存器134中读取数据包的有效载荷数据(步骤1204和1208)。
在步骤1208中,读控制器904计算读取长度,该读取长度表示仍然等待从数据缓存器134获取到音频/视频解多路复用电路126的数据的数量,从而用于进一步处理。例如,读控制器904根据如下伪码计算该读取长度。
Figure BDA0001555802180000181
在步骤1210中,读控制器904更新读指针rptr,以移动该读指针rptr,从而从数据缓存器134的下一个读地址中读取数据包的有效载荷数据。例如,读控制器904根据如下伪码更新读指针rptr。
Figure BDA0001555802180000182
在根据更新后的读指针rptr将从数据缓存器134中读取有效载荷数据的数据之后,读控制器904检测帧音频/视频解多路复用操作是否完成(步骤1212)。当帧音频/视频解多路复用操作完成时,结束读操作。否则控制流程继续到步骤1204。
为了实现流畅的视频播放,不能暂停显示缓存器138的读操作。然而,由于某些因素,视频解码器128可能不能及时提供一个重构视频帧的某些像素数据。例如,由于视频发送系统100与视频接收系统 120之间的通信链路(例如,有线通信链路或无线通信链路)110的带宽改变而导致解码速度变得不稳定。在显示引擎130开始驱动显示设备140显示该部分重构视频帧时,若部分重构视频帧的重构像素数据还没有准备好,显示设备140上将显示残缺的图像,从而导致视频质量差。为了防止显示设备140显示残缺的图像,本发明进一步提出帧基地址切换方案。
请同时参考图6和图13,图13是根据本发明实施例的帧基地址切换电路的示意图。该帧基地址切换电路1302是如图1和6所示的显示控制电路132的一部分。如上所述,显示缓存器138用于缓存重构帧(其为正在解码的当前帧)的像素数据,并且,参考帧缓存器139用于缓存一个或多个参考帧(其是已经解码的前面的帧)。在本实施例中,帧基地址切换电路1302由具有第一输入端口、第二输入端口和输出端口的多路复用器来实现,该第一输入端口用于接收重构帧基地址,该第二输入端口用于接收参考帧基地址,输出端口用于选择性地输出重构帧基地址或者参考帧基地址作为显示引擎130所使用的帧基地址 ADDR。如图13所示,根据比较重构线计数值R_Line和显示线计数值 D_Line的结果控制该帧基地址切换电路1302,重构线计数值R_Line由重构线计数器602维护,显示线计数值D_Line由显示线计数器604维护。当重构线计数值R_Line小于显示线计数值D_Line时,意味着视频解码器128不能及时提供所需要的像素线数据,帧基地址切换电路 1302将选择参考帧基地址作为帧基地址ADDR。当重构线计数值 R_Line不小于显示线计数值D_Line时,意味着视频解码器128能及时提供所需要的像素线数据,帧基地址切换电路1302将选择重构帧基地址作为帧基地址ADDR。
重构帧基地址表示存储在显示缓存器138内的重构视频帧(其为正在解码的当前帧)的起始地址。参考帧基地址表示存储在参考帧缓存器139内的参考视频帧(其为已经解码的前一帧)的起始地址。如图6所示,显示控制电路132提供帧基地址ADDR给显示引擎130。当帧基地址ADDR设置成重构帧基地址时,显示引擎130根据该帧基地址 ADDR从显示缓存器138中获取重构视频帧(其为正在解码的当前帧) 的像素数据,并根据重构视频帧(其为正在解码的当前帧)的像素数据驱动显示设备140。当帧基地址ADDR设置成参考帧基地址时,显示引擎130根据该帧基地址ADDR从参考帧缓存器139中获取参考帧(其为已解码的前一帧)的像素数据,并根据参考帧(其为已解码的前一帧)的像素数据驱动显示设备140。
当解码速度在整个当前视频帧的视频播放期间稳定时,显示设备 140将完全显示该当前视频帧。然而,当解码速度仅在部分当前视频帧的视频播放期间稳定时,显示设备140将显示部分该当前视频帧,并进一步显示部分前一视频帧。图14是根据本发明实施例的显示设备 140上所显示的视频帧。显示视频帧IMG由部分重构帧和部分参考帧构成。在重构线计数值R_Line小于显示线计数值D_Line之前,通过显示引擎130使用设置为重构帧基地址的帧基地址ADDR,在显示设备140 的第一区域上显示重构视频帧(其为正在解码的当前帧)的像素数据。在重构线计数值R_Line小于显示线计数值D_Line之后,通过显示引擎 130使用设置为参考帧基地址的帧基地址ADDR,在显示设备140的第二区域上显示参考帧(其为已解码的前一帧)的像素数据。在从重构帧基地址到参考帧基地址的自动切换的帮助下,当由于视频发送系统 100和视频接收系统120之间的带宽改变而导致的解码速度不稳定时,显示设备140上将不会显示残缺的图像。
所属领域的技术人员易知,可在保持本发明的教示内容的同时对装置及方法作出诸多修改及变动。因此,以上公开内容应被视为仅受随附权利要求书的范围的限制。

Claims (14)

1.一种视频处理系统,包括:
存储设备,包括:
数据缓存器;
比特流缓存器;
显示缓存器;
接收电路,用于接收数据包,并解压所述数据包以将所述数据包的有效载荷数据写入到所述数据缓存器内;
音频/视频解多路复用电路,用于从所述数据缓存器中获取输入数据,并对获取的所述输入数据执行音频/视频解多路复用操作以将视频比特流的数据写入到所述比特流缓存器内,其中获取的所述输入数据包括至少一个所述数据包的有效载荷数据;以及
视频解码器,用于对所述视频比特流的数据执行视频解码操作,以将重构视频帧的像素数据写入所述显示缓存器内;以及
显示引擎,用于从所述显示缓存器中获取所述重构视频帧的像素数据,并根据所述获取的所述重构视频帧的所述像素数据驱动显示设备,
其中,所述数据缓存器为耦 接于所述接收电路和所述音频/视频解多路复用电路之间的环形缓存器,所述比特流缓存器为耦 接于所述音频/视频解多路复用电路和所述视频解码器之间的环形缓存器,所述显示缓存器为耦 接于所述视频解码器和所述显示引擎之间的环形缓存器;以及
其中,所述视频解码器包括第一计数器,所述第一计数器用于维护表示所述视频解码器所重构的像素线的数量的第一计数值;每次一个编码块行完成解码之后,所述第一计时器调整所述第一计数值,其中所述一个编码块行包含列方向中的像素;所述显示引擎包括第二计数器,所述第二计数器用于维护表示通过所示显示引擎显示在所述显示设备上的像素线的数量的第二计数值;每次一个像素线完全显示之后,所述第二计时器调整所述第二计数值,
其中所述视频处理系统还包括:
显示控制电路,用于接收来自所述视频解码器的所述第一计数值,接收来自所述显示引擎的所述第二计数值,并参考所述第一计数值和所述第二计数值以控制所述显示引擎。
2.如权利要求1中所述的视频处理系统,其特征在于,所述音频/视频解多路复用电路进一步用于更新第一写指针至所述视频解码器,其中所述第一写指针表示所述音频/视频解多路复用电路将所述视频比特流的数据写入到所述比特流缓存器的当前写地址;
所述视频解码器包括:
第一读控制器,用于比较所述第一写指针与第一读指针,并在所述第一读指针追上所述第一写指针时,停止从所述比特流缓存器中获取所述视频比特流的数据,其中所述第一读指针表示所述视频解码器从所述比特流缓存器中获取所述视频比特流的数据的当前读地址;
以及
其中所述接收电路进一步用于更新第二写指针至所述音频/视频解多路复用电路,其中所述第二写指针表示所述接收电路将有效载荷数据写入到所述数据缓存器的当前写地址;其中所述音频/视频解多路复用电路包括:
第二读控制器,用于比较所述第二写指针与第二读指针,并在所述第二读指针追上所述第二写指针时停止从所述数据缓存器中获取有效载荷数据,其中所述第二读指针表示所述音频/视频解多路复用电路从所述数据缓存器中获取有效载荷数据的当前读地址。
3.如权利要求2中所述的视频处理系统,其特征在于,直到所述音频/视频解多路复用电路更新所述第一写指针为新的值,所述第一读控制器才恢复从所述比特流缓存器中获取所述视频比特流的数据,直到所述接收电路更新所述第二写指针为新的值,所述第二读控制器才恢复从所述数据缓存器中获取有效载荷数据。
4.如权利要求1中所述的视频处理系统,其特征在于,所述接收电路接收通过无线通信链路传输的所述数据包。
5.如权利要求4中所述的视频处理系统,其特征在于,所述接收电路为无线保真接收器。
6.如权利要求1中所述的视频处理系统,其特征在于,所述接收电路接收通过有线通信链路传输的所述数据包。
7.如权利要求6中所述的视频处理系统,其特征在于,所述接收电路为通用串行总线接收器或者高分辨率多媒体接口接收器。
8.一种视频处理系统,包括:
存储设备,包括:
数据缓存器;
比特流缓存器;
显示缓存器;
接收电路,用于接收数据包,并解压所述数据包以将所述数据包的有效载荷数据写入到所述数据缓存器内;
音频/视频解多路复用电路,用于从所述数据缓存器中获取输入数据,并对获取的所述输入数据执行音频/视频解多路复用操作以将视频比特流的数据写入到所述比特流缓存器内,其中获取的所述输入数据包括至少一个所述数据包的有效载荷数据;以及
视频解码器,用于对所述视频比特流的数据执行视频解码操作,以将重构视频帧的像素数据写入所述显示缓存器内;以及
显示引擎,用于从所述显示缓存器中获取所述重构视频帧的像素数据,并根据所述获取的所述重构视频帧的所述像素数据驱动显示设备,
其中,所述数据缓存器为耦 接于所述接收电路和所述音频/视频解多路复用电路之间的环形缓存器,所述比特流缓存器为耦 接于所述音频/视频解多路复用电路和所述视频解码器之间的环形缓存器,所述显示缓存器为耦 接于所述视频解码器和所述显示引擎之间的环形缓存器;
其中,所述视频解码器包括第一计数器,所述第一计数器用于维护表示所述视频解码器所重构的像素线的数量的第一计数值;每次一个编码块行完成解码之后,所述第一计时器调整所述第一计数值,其中所述一个编码块行包含列方向中的像素;所述显示引擎包括第二计数器,所述第二计数器用于维护表示通过所示显示引擎显示在所述显示设备上的像素线的数量的第二计数值;每次一个像素线完全显示之后,所述第二计时器调整所述第二计数值,
其中所述视频处理系统还包括:
显示控制电路,用于接收来自所述视频解码器的所述第一计数值,接收来自所述显示引擎的所述第二计数值,比较所述第一计数值与所述第二计数值,并且在所述第一计数值与所述第二计数值之间的差达到阈值时,指示所述视频解码器停止将所述重构视频帧的像素数据写入到所述显示缓存器内。
9.如权利要求8中所述的视频处理系统,其特征在于,其中所述视频解码器进一步用于更新第一读指针至所述音频/视频解多路复用电路,其中所述第一读指针表示由所述视频解码器从所述比特流缓存器获取所述视频比特流的数据的当前读地址;并且所述音频/视频解多路复用电路包括:
第一写控制器,用于比较所述第一读指针与第一写指针,并在所述第一写指针与所述第一读指针之间的差达到阈值时,停止将所述视频比特流写入到所述比特流缓存器,其中所述第一写指针表示所述音频/视频解多路复用电路将所述视频比特流的数据写入到所述比特流缓存器的当前写地址;
其中所述音频/视频解多路复用电路进一步用于更新第二读指针至所述接收电路,其中所述第二读指针表示所述音频/视频解多路复用电路从所述数据缓存器获取有效负载数据的当前读地址;以及所述接收电路包括:
第二写控制器,用于比较所述第二读指针与第二写指针,并在所述第二写指针与所述第二读指针之间的差达到阈值时,停止将有效载荷数据写入到所述数据缓存器,其中所述第二写指针表示所述接收电路将有效载荷数据写入到所述数据缓存器的当前写地址;以及
当所述第一写指针落后于所述第一读指针所述阈值时,所述第一写控制器停止将有效载荷数据写入到所述比特流缓存器内,其中,所述阈值等于所述第一写指针的单元递增量;当所述第二写指针落后于所述第二读指针所述阈值时,所述第二写控制器停止将有效载荷数据写入到所述数据缓存器内,其中,所述阈值等于所述第二写指针的单元递增量。
10.如权利要求8中所述的视频处理系统,其特征在于,所述视频解码器进一步用于更新第一读指针至所述音频/视频解多路复用电路,其中所述第一读指针表示由所述视频解码器从所述比特流缓存器获取所述视频比特流的数据的当前读地址;并且所述音频/视频解多路复用电路包括:
第一写控制器,用于比较所述第一读指针与第一写指针,并在所述第一写指针与所述第一读指针之间的差达到阈值时,停止将所述视频比特流写入到所述比特流缓存器,其中所述第一写指针表示所述音频/视频解多路复用电路将所述视频比特流的数据写入到所述比特流缓存器的当前写地址;
其中所述音频/视频解多路复用电路进一步用于更新第二读指针至所述接收电路,其中所述第二读指针表示所述音频/视频解多路复用电路从所述数据缓存器获取有效负载数据的当前读地址;以及所述接收电路包括:
第二写控制器,用于比较所述第二读指针与第二写指针,并在所述第二写指针与所述第二读指针之间的差达到阈值时,停止将有效载荷数据写入到所述数据缓存器,其中所述第二写指针表示所述接收电路将有效载荷数据写入到所述数据缓存器的当前写地址;以及
直到所述视频解码器更新所述第一读指针为新的值,所述第一写控制器才恢复将有效载荷数据写入到所述比特流缓存器内;直到所述第二计数值更新为新的值,所述显示控制电路才指示所述视频解码器恢复将所述重构视频帧的像素数据写入到所述显示缓存器内;直到所述音频/视频解多路复用电路更新所述第二读指针为新的值,所述第二写控制器才恢复将有效载荷数据写入到所述数据缓存器内。
11.如权利要求8中所述的视频处理系统,其特征在于,所述接收电路接收通过无线通信链路传输的所述数据包。
12.如权利要求11中所述的视频处理系统,其特征在于,所述接收电路为无线保真接收器。
13.如权利要求8中所述的视频处理系统,其特征在于,所述接收电路接收通过有线通信链路传输的所述数据包。
14.如权利要求13中所述的视频处理系统,其特征在于,所述接收电路为通用串行总线接收器或者高分辨率多媒体接口接收器。
CN201810062729.XA 2016-07-12 2018-01-23 一种视频处理系统 Active CN109246475B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662361091P 2016-07-12 2016-07-12
US15/646,095 2017-07-11
US15/646,095 US20180018999A1 (en) 2016-07-12 2017-07-11 Video processing system using ring buffer and racing-mode ring buffer access control scheme

Publications (2)

Publication Number Publication Date
CN109246475A CN109246475A (zh) 2019-01-18
CN109246475B true CN109246475B (zh) 2021-09-07

Family

ID=60940727

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810062729.XA Active CN109246475B (zh) 2016-07-12 2018-01-23 一种视频处理系统

Country Status (3)

Country Link
US (2) US20180018999A1 (zh)
CN (1) CN109246475B (zh)
TW (1) TWI666930B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3783498A1 (en) * 2019-08-22 2021-02-24 Ams Ag Signal processor, processor system and method for transferring data
CN112286657A (zh) * 2020-10-23 2021-01-29 海光信息技术股份有限公司 电子设备和中断处理方法
JP2023019077A (ja) * 2021-07-28 2023-02-09 日立Astemo株式会社 車載処理装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2156463A1 (en) * 1994-09-05 1996-03-06 Nobuyuki Aoki Data reproducing method and data reproducing apparatus
US6009231A (en) * 1994-09-05 1999-12-28 Sony Corporation Reproduction of information using a ring buffer with read and write pointers separated from each other by substantially half of the total ring buffer capacity
US7403564B2 (en) * 2001-11-21 2008-07-22 Vixs Systems, Inc. System and method for multiple channel video transcoding
JP2003169327A (ja) * 2001-11-30 2003-06-13 Matsushita Electric Ind Co Ltd ソフトウェアでのmpeg−2ビデオ可変長復号化方法
US7920630B2 (en) * 2003-01-21 2011-04-05 Broadcom Corporation Buffer descriptor data structure for communication link between decode and display processes in MPEG decoders
KR100539886B1 (ko) * 2004-09-10 2005-12-28 삼성전자주식회사 디지털 방송 수신 장치 및 그 방법
US8009174B2 (en) * 2005-03-21 2011-08-30 Koninklijke Philips Electronics N.V. Processing a data array with a meandering scanning order using a circular buffer memory
JP4719167B2 (ja) * 2007-02-19 2011-07-06 株式会社東芝 半導体メモリ情報蓄積装置とその書き込み不良対策方法
JP4889573B2 (ja) * 2007-06-07 2012-03-07 ヤマハ株式会社 画像処理装置
CN101404741B (zh) * 2008-11-06 2011-04-06 北京创毅视讯科技有限公司 一种音频播放装置、方法及一种数字电视芯片
JP2010160653A (ja) * 2009-01-07 2010-07-22 Renesas Electronics Corp リングバッファ回路及びその制御回路
CN102110461B (zh) * 2009-12-24 2014-07-16 晨星软件研发(深圳)有限公司 存储器控制器及其控制方法
US8493992B2 (en) * 2010-02-04 2013-07-23 Texas Instruments Incorporated Interrelated WiFi and USB protocols and other application framework processes, circuits and systems
US9497466B2 (en) * 2011-01-17 2016-11-15 Mediatek Inc. Buffering apparatus for buffering multi-partition video/image bitstream and related method thereof
US8990435B2 (en) * 2011-01-17 2015-03-24 Mediatek Inc. Method and apparatus for accessing data of multi-tile encoded picture stored in buffering apparatus
CN102625193B (zh) * 2011-01-27 2014-07-09 郑州威科姆科技股份有限公司 一种借助辅助文件实现多媒体文件网络播放的方法
US8390743B2 (en) * 2011-03-31 2013-03-05 Intersil Americas Inc. System and methods for the synchronization and display of video input signals
US9727504B2 (en) * 2012-02-29 2017-08-08 Mitsubishi Electric Corporation Data transfer apparatus, data transfer method, and data transfer program
US9753733B2 (en) * 2012-06-15 2017-09-05 Apple Inc. Methods, apparatus, and processors for packing multiple iterations of loop in a loop buffer
CN103034538B (zh) * 2012-12-24 2015-06-17 珠海拓普智能电气股份有限公司 一种嵌入式操作系统中驱动程序的多级缓存处理方法
US20150206596A1 (en) * 2014-01-21 2015-07-23 Nvidia Corporation Managing a ring buffer shared by multiple processing engines
JP6732534B2 (ja) * 2015-05-29 2020-07-29 キヤノン株式会社 データ処理装置、データ処理方法

Also Published As

Publication number Publication date
CN109246475A (zh) 2019-01-18
US20200143836A1 (en) 2020-05-07
US10984832B2 (en) 2021-04-20
TW201813406A (zh) 2018-04-01
US20180018999A1 (en) 2018-01-18
TWI666930B (zh) 2019-07-21

Similar Documents

Publication Publication Date Title
CN109246475B (zh) 一种视频处理系统
CN109218822B (zh) 一种视频处理系统
US10026146B2 (en) Image processing device including a progress notifier which outputs a progress signal
CN112055969B (zh) 用于对视频数据进行编码以提供低延迟消费的系统和方法
US9509940B2 (en) Image output device, image output method, and recording medium
US7609768B2 (en) Video buffer control apparatus for dual video decoding and digital broadcasting receiver thereof
KR102619668B1 (ko) 슬라이스 업데이트 맵을 이용하는 장치 및 방법
US10230948B2 (en) Video transmitting system with on-the-fly encoding and on-the-fly delivering and associated video receiving system
US9654725B2 (en) Video processing method, video displaying method and video processing device
US10349073B2 (en) Decoding device, image transmission system, and decoding method
JP2016525297A (ja) グラフィクスプロセッサを使用するビデオ復号化のためのピクチャ参照コントロール
US20190095338A1 (en) Semiconductor device, data processing system, and semiconductor device control method
CN111757034A (zh) 一种基于fpga的视频同步显示方法、装置和存储介质
CN111726626B (zh) 集成电路及用于视频解码的概率表存储方法
CN107241601B (zh) 图像数据传输方法、装置及终端
US9990900B2 (en) Image processing device and method thereof
CN109218725B (zh) 一种视频编码器、视频解码器及视频处理系统
KR20200079408A (ko) 영상 복호화 장치 및 방법
CN113411651A (zh) 一种视频处理方法、播放器及计算机可读存储介质
CN115118999A (zh) 熵上下文处理方法、片上系统及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant