发明名称 Concurrent access shared buffer in a video encoder
摘要 A video encoder includes a buffer, a DMA engine, a motion estimator and a motion compensator. The buffer includes four pages where macroblocks are stored. The motion estimator generates a motion vector for a given macroblock. The motion compensator applies the motion vectors generated by the motion estimator to a previously encoded frame. Each of the four pages is concurrently accessed by one of the motion estimator, the motion compensator, and a channel of the DMA engine. Simultaneously the motion compensator accesses one page of the buffer containing a first set of macroblocks, the motion estimator accesses a second page of the buffer containing a second set of macroblocks, a first DMA engine channel writes a different set of macroblocks to a third page of the buffer and a second DMA engine channel writes another set of macroblocks to a fourth page of the buffer.
申请公布号 US9300975(B2) 申请公布日期 2016.03.29
申请号 US201213490549 申请日期 2012.06.07
申请人 TEXAS INSTRUMENTS INCORPORATED 发明人 Jagannathan Shyam;Srinivasamurthy Naveen
分类号 H04N7/32;H04N19/433;H04N19/43 主分类号 H04N7/32
代理机构 代理人 Marshall, Jr. Robert D.;Cimino Frank D.
主权项 1. An apparatus, comprising: a buffer comprising four pages in which macroblocks of video are stored; a direct memory access (DMA) engine comprising a plurality of channels, each DMA channel to write encoded macroblocks to the buffer; a motion estimator to generate a motion vector for a given macroblock stored in the buffer; and a motion compensator to use the motion vectors generated by the motion estimator to perform interpolation; wherein, for a given time slot a first channel of the DMA engine stores luminance and chrominance data of a first set of a predetermined number of macroblocks of a current frame and luminance data of corresponding set of macroblocks of a reference frame in a first page of the buffer, the predetermined number of macroblocks being less than a number of macroblocks in a frame,the motion estimator accesses data of a second set of the predetermined number of macroblocks of the current frame stored in a second page of the buffer, for each macroblock stored in the second page of the buffer generates a motion vector based on a closest match for a corresponding macroblock in the reference frame from only luminance data and stores the motion vector for each macroblock in the second page of the buffer,a second channel of the DMA engine stores chrominance data for a set of macroblocks of a reference frame corresponding to a third set of the predetermined number of macroblocks in a third page of the buffer overwriting luminance data of the third set of macroblocks of the current frame stored in the third page of the buffer, andthe motion compensator accesses data of a set of macroblocks of a reference frame corresponding to a fourth set of the predetermined number of macroblocks and motion vectors for each macroblock stored in a fourth page of the buffer, and performs interpolation for each macroblock of the current frame from luminance and chrominance data of a corresponding macroblock of the reference frame and a corresponding motion vector; wherein for each following time slot the first channel of the DMA engine, the motion estimator, the second channel of the DMA engine and the motion compensator access a next page of the buffer in a circular sequence of pages.
地址 Dallas TX US