US20040240548A1 - Video encoding device - Google Patents

Video encoding device Download PDF

Info

Publication number
US20040240548A1
US20040240548A1 US10/887,950 US88795004A US2004240548A1 US 20040240548 A1 US20040240548 A1 US 20040240548A1 US 88795004 A US88795004 A US 88795004A US 2004240548 A1 US2004240548 A1 US 2004240548A1
Authority
US
United States
Prior art keywords
processor
resolution
video
motion estimation
global controller
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.)
Abandoned
Application number
US10/887,950
Inventor
Amir Morad
Leonid Yavits
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.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Broadcom Corp
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=11070893&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=US20040240548(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Broadcom Corp filed Critical Broadcom Corp
Priority to US10/887,950 priority Critical patent/US20040240548A1/en
Publication of US20040240548A1 publication Critical patent/US20040240548A1/en
Assigned to VISIONTECH LTD. reassignment VISIONTECH LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MORAD, AMIR, YAVITS, LEONID
Assigned to BROADCOM CORPORATION reassignment BROADCOM CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: VISIONTECH LTD.
Assigned to BANK OF AMERICA, N.A., AS COLLATERAL AGENT reassignment BANK OF AMERICA, N.A., AS COLLATERAL AGENT PATENT SECURITY AGREEMENT Assignors: BROADCOM CORPORATION
Assigned to AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. reassignment AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BROADCOM CORPORATION
Assigned to BROADCOM CORPORATION reassignment BROADCOM CORPORATION TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Assignors: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Abandoned legal-status Critical Current

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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation
    • 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
    • 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/43Hardware specially adapted for motion estimation or compensation
    • 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/436Methods 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 using parallelised computational arrangements

Definitions

  • the present invention relates to video encoding devices in general and to single chip video encoding devices, in particular.
  • Most hardware encoding systems consist of a set of semiconductor circuits, which are arranged on a large circuit board.
  • State of the art encoding systems include a single semiconductor circuit, which is based on a high power processor.
  • FIG. 1 is a schematic illustration of a video encoding circuit, referenced 10 , which is known in the art.
  • Circuit 10 includes a motion estimation processor 12 , a motion estimation memory unit 14 connected to the motion estimation processor 12 , a Reduced Instruction Set Computer (RISC) processor 16 connected to the motion estimation processor 12 and an image buffer 18 , connected to RISC processor 16 .
  • RISC Reduced Instruction Set Computer
  • RISC processor 16 transfers a portion of video signal from image buffer 18 to memory unit 14 .
  • Motion estimation processor 12 analyzes the motion of the video signal.
  • Motion estimation processor 12 utilizes memory unit 14 as a storage area for the video signal portion which is currently processed by it.
  • the motion estimation processor 12 completed analyzing the motion of a video signal portion, it transfers the results of the motion estimation analysis to the RISC processor 16 .
  • the RISC processor 16 performs all other processing and encoding tasks which the video signal has to undergo, such as discrete COSINE transform (DCT), quantization, entropy encoding, bit-stream production and the like.
  • the RISC processor 16 utilizes the image buffer 18 as a storage area for the video signal portion which is currently processed by it, and as a temporary storage for its computational purposes.
  • each of the processing units 12 and 16 have a separate storage area. Accordingly, each of the processed portions of video signal, such as and ISO/IEC 13818 (MPEG-2) macro-blocks, have to be transferred to both memory unit 14 and image buffer 18 . RISC processor 16 has to access image buffer 18 for the same data, each time this data is required. Such Retrieval of large data blocks, many times, greatly increases data traffic volume over the encoding system data transmission lines.
  • circuit 10 is able to execute all processing and encoding tasks in a serial manner, thereby capable of processing only a single macro-block at a time, requiring high operational processor frequencies.
  • Circuit 10 receives a macro-block, processes it and produces an encoded bit-stream. Internally, the RISC processor 16 operates in the same manner.
  • circuit 10 has a direct affect over the heat produced by it, thereby requiring large cooling elements as well as massive cooling devices such as fans and the like.
  • Methods for estimating motion in a video signal are known in the art. According to these methods a frame is compared with previous frames. The difference between the frames is used to estimate a level of motion. These methods analyze a frame and map it, thereby indicating areas in frame which have no motion over previous frames and areas in the frame which are assigned with a motion level.
  • each pixel in the search area is analyzed.
  • This method requires a vast number of estimation operations and is thereby extremely resource consuming.
  • This method is also called a full exhaustive search.
  • the search area is scanned in a center weighted manner, which can be logarithmic, and the like, whereby the center of the search area is scanned thoroughly at full resolution and the rest of the search area is scanned at lower resolution. Areas which detected as having some motion, in the low resolution search, are scanned again in full resolution. This reduces the overall number of estimation operations.
  • FIG. 2 is a schematic illustration of a Digital Signal Processing (DSP) processor, referenced 50 , which is known in the art.
  • DSP Digital Signal Processing
  • DSP processor 50 is of a single instruction multiple data (SIMD) type machine. It includes a plurality of identical processing units (P.U.) 52 , 56 60 , 64 , 68 and 72 , and a random access memory (RAM) 61 . RAM 61 is divided into segments 54 , 58 , 62 , 66 , 70 and 74 .
  • SIMD single instruction multiple data
  • Each memory segment is exclusively assigned and connected to a processing unit, whereas RAM segment units 54 , 58 , 62 , 66 , 70 and 74 are assigned to and connected to processing units (P.U.) 52 , 56 , 60 , 64 , 68 and 72 , respectively.
  • P.U. processing units
  • This structure has several disadvantages.
  • One disadvantage of such machine is that the same operation is performed by all of the processing units at same time.
  • SIMD machine Another disadvantage of the SIMD machine is that the data is not shared among the processing units. For example, processing unit 56 can access data contained in RAM segment 66 via processing unit 64 only. It cannot do so directly. It will be appreciated by those skilled in the art that such a configuration is inefficient.
  • a further disadvantage is that individual operations that vary for different data items cannot be efficiently performed by an SIMD machine.
  • the programming of such operations into the processing units, is very difficult.
  • Such individual operations can be only performed in a serial manner, while masking all irrelevant data, resulting in shutting off most of the processing units.
  • the utilization of the hardware resources in an SIMD machine during such programming operations is very low, and performance of the machine are dramatically decreased.
  • Another disadvantage relates to the interconnection structure between the processing units. It will be appreciated that, a processing unit within an SIMD machine is connected to a limited number of neighboring processing units. Hence communication between such a processing unit and a processing unit riot connected thereto, is often a complex operation.
  • Bit-stream processing and generation in a conventional encoding circuit, is performed by a general purpose processor.
  • Bit-stream generation requires some specific operations, which can not be performed efficiently by a general purpose processor.
  • a general purpose processor uses a small portion of its processing resources, while shutting off rest of them. Therefore, the disadvantage is that the resources of such processor are not utilized efficiently.
  • a video encoding system which includes a video source providing a multiple frame video signal, a compressed data interface, a host interface and a video encoding device.
  • the video encoding device includes a video input processor, a global controller, a motion estimation processor, a digital signal processor and a bit-stream processor.
  • the video input processor receives the video signal.
  • the global controller controls the global operation of the video encoding device.
  • the motion estimation processor is connected to the global controller.
  • the digital signal processor is connected to the global controller and to the motion estimation processor.
  • the bit-stream processor is connected to the digital signal processor, the global controller and the compressed data interface.
  • the global controller stores encoding commands received from the host interface thereby programming the video input processor, the motion estimation processor, the digital signal processor and the bit-stream processor.
  • a video camera including an optical assembly, a light sensitive device, detecting light via the optical assembly, thereby producing a video signal and a video encoding device, connected to the light sensitive device.
  • the video encoding device includes a video source providing a multiple frame video signal, a compressed data interface, a host interface and a video encoding device.
  • the video encoding device includes a video input processor, a global controller, a motion estimation processor, a digital signal processor and a bit-stream processor.
  • the video input processor receives the video signal.
  • the global controller controls the global operation of the video encoding device.
  • the motion estimation processor is connected to the global controller.
  • the digital signal processor is connected to the global controller and to the motion estimation processor.
  • the bit-stream processor is connected to the digital signal processor, the global controller and the compressed data interface.
  • the global controller stores encoding commands received from the host interface thereby programming the video input processor, the motion estimation processor, the digital signal processor and the bit-stream processor.
  • FIG. 1 is a schematic illustration of an encoding circuit, known in the art
  • FIG. 2 is a schematic illustration of an DSP unit, which is known in the art
  • FIG. 3 is a schematic illustration of a video encoding device, constructed and operative in accordance with a preferred embodiment of the invention
  • FIG. 4 is a schematic illustration of a video encoding device, constructed and operative in accordance with another preferred embodiment of the invention.
  • FIG. 5 is a schematic illustration in detail of the motion estimation processor, of the video encoding device of the device of FIG. 3, constructed and operative in accordance with a further preferred embodiment of the invention
  • FIG. 6 is a schematic illustration of a video frame, including three resolution representation of a portion of this frame
  • FIG. 7 is a schematic illustration in detail of the digital signal processor, of the video encoding device of FIG. 3, constructed and operative in accordance with another preferred embodiment of the invention.
  • FIG. 8 is a schematic illustration in detail of a digital signal processor, constructed and operative in accordance with a further preferred embodiment of the invention.
  • FIG. 9 is a schematic illustration in detail of the video input processor, of the encoding device of FIG. 3, constructed and operative in accordance with a further preferred embodiment of the invention.
  • FIG. 10 is a schematic illustration in detail of the bit-stream processor, of the encoding device of FIG. 3, constructed and operative in accordance with another preferred embodiment of the invention.
  • FIG. 11 is a schematic illustration in detail of the global controller of the encoding device of FIG. 3, constructed and operative in accordance with another preferred embodiment of the invention.
  • FIG. 12 is a schematic illustration in detail of the encoding device of FIG. 3, incorporated in a video camera, constructed and operative in accordance with a further preferred embodiment of the invention.
  • the present invention overcomes the disadvantages of the prior art by providing a novel approach to video compression processing and a novel structure for a device, according to this approach.
  • the device according to the invention is a massively parallel digital video processor designed, for the purpose of real-time video encoding, like MPEG.
  • This device can be incorporated in a single chip, and installed in digital camcorders, recordable digital video disk (DVD), PC and workstation multimedia, educational and training systems, video conferencing, broadcast equipment, security, content creation/authoring/video editing equipment, and the like.
  • FIG. 3 is a schematic illustration of a video encoding device, generally referenced 100 , constructed and operative in accordance with a preferred embodiment of the invention.
  • Device 100 includes a video input processor 106 , a motion estimation processor 108 , a digital signal processor 104 , a bit-stream processor 102 and a global controller 110 .
  • the video input processor 106 is connected to the global controller 110 .
  • the motion estimation processor 108 is connected to the global controller 110 and to the digital signal processor 104 .
  • the digital signal processor 104 is connected to the global controller 110 and to the bit-stream processor 102 , which is also connected to the global controller 110 .
  • the bit-stream processor 102 is further connected to a compressed data interface 128 .
  • the global controller 110 is further connected to a host interface 120 and to a memory unit 122 .
  • the input of the video input processor 106 is further connected to a digital video source (not shown) via a digital video interface 124 .
  • a host is typically a user interface which is operative to receive commands, operational parameters, and the like, from a user or a supervising system and also to provide to the user information received from device 100 .
  • Device 100 operates in two modes: a programming mode and an operational mode. Device 100 is operative to run according to both modes at the same time.
  • an external host transfers the data and control parameters to the global controller 110 , via the host interface 120 .
  • the global controller 110 can transfer the data and control signals to the video input processor 106 , motion estimation processor 108 , digital signal processor 104 and bit-stream processor 102 .
  • the video input processor 106 captures motion video signal from an external video source via the digitized video interface 124 .
  • Video input processor 106 also performs preprocessing of the video signal, such as spatial filtering, noise reduction, image quality improvement, image size adjustment, and the like, color format conversion, and the like, thereby producing preprocessed video data.
  • Video input processor 106 accumulates the preprocessed video data into data blocks and transfers them to the global controller 110 .
  • Global controller 110 stores the data blocks in memory unit 122 .
  • the device operates under MPEG-2 video compression standard.
  • a data block represents an MPEG-2 macro-block, which is a sixteen by sixteen [16 ⁇ 16] matrix of luminance pixels and two, four or eight, eight by eight [8 ⁇ 8] matrices of chrominance pixels, as defined by the MPEG-2 standard.
  • a reference frame represents a picture which is compared versus current picture during the motion estimation.
  • the global controller 110 retrieves a current picture macro-block and reference picture macro-blocks from the memory unit 122 and loads them to the motion estimation processor 108 .
  • Motion estimation processor 108 compares the current picture macro-block with the respective reference frame macro-blocks, thereby producing an estimation of the motion of the current picture macro-block.
  • the motion estimation processor 108 uses this estimation to remove temporal redundancy of the video signal, as will be described in detail hereinbelow.
  • the motion estimation processor 108 transfers the resulting motion estimation data to the global controller 110 .
  • Motion estimation processor 108 also transfers the current picture macro-block and the corresponding reference frames macro-blocks to the digital signal processor 104 .
  • Digital signal processor 104 executes procedures which are intended to remove the spatial redundancy of the video signal, thereby producing a sequence of compression commands, as will be described in detail hereinbelow.
  • This sequence of compression commands includes instruction as to which frame of the original video signal is to be compressed into an I-frame, a B-frame or a P-frame, and according to which reference frames.
  • the digital signal processor 104 transfers the sequence of compressed data to the bit-stream processor 102 and to the global controller 110 .
  • the bit-stream processor 102 performs a series of encoding procedures, such as entropy encoding, and the like, as will be described in detail hereinbelow.
  • the bit-stream processor 102 compresses data into an MPEG-2 standard format data, in accordance with the sequence of compression commands.
  • bit-stream processor 102 transfers the MPEG-2 standard format data to the compressed data interface 128 .
  • compressed data interface 128 can be connected to any data receptacle element such as a storage unit or a communication transmission line.
  • Global controller 110 controls and schedules the video input processor 106 the motion estimation processor 108 , the digital signal processor 104 and the bit-stream processor 102 .
  • Global controller 110 also governs the data transfer among the motion estimation processor 108 , digital signal processor 104 and the bit-stream processor 102 .
  • the global controller 110 also connects between the external host and video input processor 106 , motion estimation processor 108 , digital signal processor 104 and bit-stream processor 102 .
  • an external host can access the register file 408 (FIG. 10) of global controller 110 for read and/or write operations.
  • macro-blocks are fed into device 100 , in a horizontal or vertical raster scan manner, from the top left macro-block through to the right bottom macro-block, of a specified frame.
  • Device 100 processes a number of successive macro-blocks, at the same time. For example, while the bit-stream processor 102 processes the i-th macro-block, digital signal processor 104 processes the i+1-th macro-block and motion estimation processor 108 processes the i+2-th through i+4-th macro-blocks.
  • bit-stream processor 102 processes the i-th macro-block
  • digital signal processor 104 processes the k-th macro-block
  • motion estimation processor 108 processes the j-th through j+m-th macro-blocks, wherein i ⁇ k ⁇ j and m ⁇ 1.
  • Device 100 overcomes a disadvantage of the prior art by using memory unit 122 as a shared storage area which is accessible to all of its internal units, via global controller 110 .
  • memory unit 122 as a shared storage area which is accessible to all of its internal units, via global controller 110 .
  • all access to storage unit 122 is provided via global controller 110 .
  • FIG. 4 is a schematic illustration of a video encoding device, generally referenced 200 , constructed and operative in accordance with another preferred embodiment of the invention.
  • Device 200 is generally similar to device 100 and includes a video input processor 206 , a motion estimation processor 208 , a digital signal processor 204 , a bit-stream processor 202 and a global controller 210 .
  • Device 200 is also connected to a compressed data interface 228 , a memory unit 222 , a digital video source (not shown) via a digital video interface 224 and a host interface 220 .
  • a compressed data interface 228 is also connected to a memory unit 222 .
  • a digital video source not shown
  • a host interface 220 In device 200 , all of the internal components are connected directly to memory unit 222 .
  • video input processor 206 motion estimation processor 208 , digital signal processor 204 , bit-stream processor 202 and global controller 210 can, each, access any storage address within memory unit 222 , directly, thereby performing any I ⁇ O operation.
  • a shared memory structure can include a combination of the examples disclosed in FIGS. 3 and 4, whereby some components are directly connected to memory unit and the rest are connected to the memory unit via a mediating element, such as global controller 110 .
  • memory unit 110 can partitioned into many sub-areas, whereby each of the internal units of device 100 , is granted an access level which is selected from a list of access levels such as read-write, read only, write only, no access and the like. It will be appreciated by those skilled that such a structure provides tremendous flexibility, whereby the amount of memory assigned to a selected internal unit can be increased or decreased dynamically, in real-time.
  • device 100 performs different processing and encoding procedures in parallel, by processing a number of successive macro-blocks simultaneously. Hence, a selected macro-block is permitted to be present in the device 100 for an extended period of time, with comparison to device 10 (FIG. 1), thereby greatly reducing the operational frequency of device 100 , by factor of at least five.
  • FIG. 5 is a schematic illustration in detail of motion estimation processor 108 , constructed and operative in accordance with a further preferred embodiment of the invention.
  • FIG. 6 is a schematic illustration of a video frame, generally referenced 170 , including three resolution representation of a portion of this frame, generally referenced A, B and C.
  • Motion estimation processor 108 includes a low resolution processor 150 , a full resolution processor 152 , a hyper resolution processor 154 and a local-controller 158 .
  • the frame input of the motion estimation processor 108 is connected to the inputs of the low resolution processor 150 , the full resolution processor 152 , the hyper resolution processor.
  • the frame output of motion estimation processor 108 is connected to the hyper resolution processor 154 .
  • the local-controller 158 is connected to the low resolution processor 150 , the full resolution processor 152 and the hyper resolution processor and the control port of the motion estimation processor 108 , which is connected to global controller 110 (FIG. 3).
  • frame 170 is a [6 ⁇ 6] matrix which includes a digital representation of a video frame Fi.
  • the currently scanned block is block B, which is a [4 ⁇ 4] matrix from pixel B:(1,1) to pixel B:(4,4).
  • Frame 170 is provided to processors 150 , 152 and 154 (FIG. 5).
  • motion estimation processor 108 can operate in two modes: a programming mode and an operational mode.
  • the motion estimation processor can operate according to both modes at the same time.
  • the global controller 110 (FIG. 3) provides control parameters as well as data parameters, to micro-controller 158 , via the control port.
  • Local-controller 158 controls and synchronizes processors 150 , 152 and 154 .
  • processors 150 , 152 and 154 operate either in a parallel or in a serial manner.
  • the low resolution processor 150 processes i-th macro-block, while the full resolution processor 152 processes I-1-th macro-block, whereas the hyper resolution processor 154 processes 1 -2-th macro-block, all at the same time.
  • the low resolution processor 150 processes i-th macro-block, while both full resolution processor 152 and the hyper resolution processor 154 process I+1-th macro-block in a serial manner.
  • Low resolution processor 150 operates as follows.
  • the global controller 110 loads the current picture macro-block and the reference pictures data blocks into the low resolution processor 150 .
  • the low resolution processor 150 performs a resolution reduction, resulting in decreasing the amount of image data.
  • the low resolution processor 150 can perform the resolution reduction by different methods, like decimation, low pass filtering, non-linear filtering, and the like.
  • low resolution processor 150 (FIG. 5) generates a low resolution block A from block B.
  • Block A is a [2 ⁇ 2] matrix, wherein pixel A:(1,1) is a combined representation of pixels B:(1,1), B:(1,2), B:(2,1) and B:(2,2), pixel A:(2,1) is a combined representation of pixels B:(3,1), B:(3,2), B:(4,1) and B:(4,2), pixel A:(1,2) is a combined representation of pixels B:(1,3), B:(1,4), B:(2,3) and B:(2,4) and pixel A:(2,2) is a combined representation of pixels B:(3,3), B:(3,4), B:(4,3) and B:(4,4).
  • the resolution reduction of the present example is at a ratio of 1:4. It will be noted that low resolution processor 150 can perform a resolution reduction at any ratio desired.
  • low resolution processor After low resolution processor completes the resolution reduction, then, it performs a search procedure.
  • the low resolution processor 150 can performs different types of search, like full exhaustive search, telescopic search, and the like, thereby producing low resolution motion analysis.
  • the global controller 110 (FIG. 3) reads the low resolution motion analysis data from the low resolution processor 150 , via the local controller 158 .
  • Full resolution processor 152 operates as follows: The global controller 110 loads the current picture block (referenced B in FIG. 6) and the reference pictures data block into the full resolution processor 152 , according to the low resolution motion analysis. Then, the full resolution processor 152 performs a search procedure.
  • the full resolution processor 152 can perform different types of search, like full exhaustive search, telescopic search, and the like, thereby producing full resolution motion analysis. After the search is completed, the global controller 110 reads the full resolution motion analysis data from the full resolution processor 152 , via the local controller 158 .
  • Full resolution processor 152 and hyper resolution processor 154 can have a shared storage area. This aspect of the invention reduces the memory requirements of the encoding system.
  • Hyper resolution processor 154 operates as follows: The global controller 110 loads the current picture macro-block and the reference pictures data blocks into the hyper resolution processor 154 . The hyper resolution processor 154 multiplies the resolution of the image data, enabling a motion prediction with a resolution higher than a single pixel step.
  • Hyper resolution processor 154 can perform the resolution multiplication by different methods, like zero order interpolation, first order interpolation, and the like.
  • hyper resolution processor 154 (FIG. 5) generates a hyper resolution block C from block B.
  • Block C is a [9 ⁇ 9] matrix, wherein pixels C:(1,1), C:(3,1), C:(5,1), C:(7,1), C:(1,3), C:(3,3), C:(5,3), C:(7,3), C:(1,5), C:(3,5), C:(5,5), C:(7,5), C:(1,7), C:(3,7), C:(5,7) and C:(7,7) are equal to pixels B:(1,1), B:(2,1), B:(3,1), B:(4,1), B:(1,2), B:(2,2), B:(3,2), B:(4,2), B:(1,3), B:(2,3), B:(3,3), B:(4,3), B:(1,4), B:(2,4), B:(3,4) and B:(4,4), respectively.
  • Each other pixel in block C can be an interpolation of selected B: pixels adjacent to its respective place therein.
  • pixel C:(2,2) is an interpolation of pixels B:(1,1), B:(1,2), B:(2,1) and B:(2,2).
  • Pixel C:(2,1) is an interpolation of pixels B:(1,1), and B:(2,1).
  • Pixel C:(1,0) is an interpolation of pixels B:(1,0), and B:(1,1).
  • the resolution enhancement of the present example is at a ratio of 4:1. It will be noted that hyper resolution processor 154 can perform a resolution enhancement at any ratio desired.
  • the hyper resolution processor 154 After the hyper resolution processor 154 completes the resolution multiplication, it performs a search procedure.
  • the hyper resolution processor 154 can perform different types of search, like full exhaustive search, telescopic search, and the like, thereby producing hyper resolution motion analysis.
  • the global controller 110 reads the hyper resolution motion analysis data, from the hyper resolution processor 154 , via the local controller 158 .
  • a motion estimation processor can include as many resolution processors as desired, wherein some resolution processors are low resolution processors, at a variety of low resolutions and other resolution processors are hyper resolution processors, at a variety of hyper resolutions.
  • FIG. 7 is a schematic illustration in detail of digital signal processor 104 , of FIG. 3, constructed and operative in accordance with another preferred embodiment of the invention.
  • Digital signal processor 104 includes a master controller 250 , a random access unit (RAM) 270 and N processing units 252 , 254 , 256 , 258 , 260 and 262 .
  • Each processing unit 252 , 254 , 256 , 258 , 260 and 262 is connected to the master controller 250 and to the RAM 270 .
  • the processing units 252 , 254 , 256 , 258 , 260 and 262 are further connected to motion estimation processor 108 and to the global controller 110 (FIG. 3), for retrieving macro block data therefrom.
  • Digital signal processor 104 can operate in two modes: a programming mode and an operational mode. Digital signal processor 104 can operate according to both modes at the same time.
  • the global controller 110 (FIG. 3) transfers data and control parameters to/from master controller 250 .
  • the master controller 250 can independently program each processing unit 252 , 254 , 256 , 258 , 260 and 262 .
  • the master controller 250 and all processing units 252 , 254 , 256 , 258 , 260 and 262 operate in parallel.
  • the motion estimation processor 108 (FIG. 3) transfers the current macro-block and the reference macro-blocks data to the processing units 252 , 254 , 256 , 258 , 260 and 262 of the digital signal processor 104 .
  • the motion estimation processor 108 (FIG. 3) provides luminance macro-blocks and the global controller 110 provides chrominance macro-blocks retrieved from memory unit 122 .
  • the global controller 110 transfers the appropriate data (like motion vectors, macro-block type, perdition type, and the like) to the master controller 250 .
  • the master controller 250 performs special processing procedures such as like rate control, DCT type selection, macro-block type selection and the like.
  • the master controller 250 distributes control instructions to the processing units 252 , 254 , 256 , 258 , 260 and 262 , and receives processed data from each of these processing units.
  • Processing units 252 , 254 , 256 , 258 , 260 and 262 perform processing procedures on large data blocks, such as discrete cosine transform (DCT), inverse discrete cosine transform (IDCT), quantization, inverse quantization, frame type decisions, and the like.
  • DCT discrete cosine transform
  • IDCT inverse discrete cosine transform
  • quantization inverse quantization
  • frame type decisions and the like.
  • Each of these processing units processes different data blocks. Each processing unit can access the data blocks associated with other processing units, in RAM 270 . All processing unit can execute different operations in parallel.
  • the processing units transfer the processed coefficient data to the bit-stream processor 102 (FIG. 3).
  • the master controller 250 of the digital signal processor 104 transfers the appropriate data (like macro-block type, DCT type, quantizer scale, etc.) to the global controller 110 (FIG. 3).
  • the present invention overcomes the disadvantages of the prior art by configuring the master controller 250 so as to perform individual processing tasks on some data items while the processing units 252 , 254 , 256 , 258 , 260 and 262 , simultaneously perform massive processing tasks on large data blocks.
  • the master controller 250 temporarily assigns a storage area in RAM 270 , to each of the processing unit 252 , 254 , 256 , 258 , 260 and 262 .
  • each processing unit 252 , 254 , 256 , 258 , 260 and 262 can access the data which is associated with the other processing units. It will be appreciated by those skilled in the art that such a structure greatly enhances the efficiency of processing and data transfer operations in DSP 104 . Such parallel access structure of the processing units also allows very fast and efficient data transfer to and from the digital signal processor 104 .
  • FIG. 8 is a schematic illustration in detail of a digital signal processor, generally referenced 144 , constructed and operative in accordance with a further preferred embodiment of the invention.
  • Digital signal processor 144 is generally similar to digital signal processor 104 , with a slightly different memory structure.
  • Digital signal processor 144 includes a master controller 288 , N processing units 271 , 274 , 276 , 280 , 282 and 286 and N/2 random access units (RAM) 272 , 278 and 284 .
  • Each RAM unit is connected to two processing unit. Processing units 271 and 274 are connected to RAM unit 272 . Processing units 276 and 280 are connected to RAM unit 278 . Processing units 282 and 286 are connected to RAM unit 284 .
  • Each processing unit is able to access any address in the RAM unit connected thereto.
  • FIG. 9 is a schematic illustration in detail of video input processor 106 , of FIG. 3, constructed and operative in accordance with a further preferred embodiment of the invention.
  • Video input processor 106 includes a video capture unit 230 , a video preprocessor 232 and a temporary video storage 236 .
  • the inputs of the video capture unit 230 , the video preprocessor 232 and the temporary video storage 236 are connected to the video input processor 106 (FIG. 3).
  • the input of the video capture unit 230 is connected to video input processor 106 .
  • the video capture unit 230 is connected to the video preprocessor 232 .
  • the video preprocessor 232 is connected to the temporary video storage 236 .
  • the output of the temporary video storage 236 is connected to the global controller 110 .
  • Video input processor 106 operates in two modes: programming and operational. Video input processor 106 is operative to run according to both modes at the same time. In the programming mode, the global controller 110 (FIG. 3) loads data and control parameters to the video capture unit 230 , to the video preprocessor 232 and to the temporary video storage 236 .
  • the video capture unit 230 acquires the input video signal.
  • the video capture unit 230 is self synchronized with the input video signal, according to its format (NTSC, PAL, SECAM, and the like), programmable resolution (DI, SIF, QSIF, and the like), and the like.
  • the video capture unit 230 also provides video synchronization signals (like a new frame start, a new field start, etc.) to the global controller 110 .
  • the video preprocessor 232 performs a series of video processing procedures to enhance the captured video signal.
  • the video processing procedures can include a color format conversion, size reduction, noise reduction, edge sharpening, image quality improvement, and the like.
  • the temporary video storage 236 accumulates the processed video signal and provides a “data ready” signal to the global controller 110 (FIG. 3).
  • the global controller 110 reads the accumulated image data from the temporary video storage 236 .
  • the global controller 110 also provides control signals to the video input processor 106 .
  • the usage of the temporary video storage 236 allows to efficiently adjust the data rates of an external video signal and the internal data transfer.
  • the video input processor 106 can accumulate the processed video signal in a real time variable rate whereas the global controller 110 can transfer the accumulated data to the memory unit 122 in a burst. This greatly reduces the memory bandwidth requirements, and makes the usage of a memory unit 122 more efficient.
  • FIG. 10 is a schematic illustration in detail of bit-stream processor 102 , of FIG. 3, constructed and operative in accordance with a further preferred embodiment of the invention.
  • Bit-stream processor 102 includes a local processing unit 356 , an entropy encoder 358 , a temporary coefficient storage 360 , a bit-stream formatter 352 , an output buffer 354 and a micro-controller 350 .
  • the input of the bit-stream processor 102 is connected to the input of the temporary coefficient storage 360 and of the local processing unit 356 .
  • the temporary coefficient storage 360 is connected to the entropy encoder 358 .
  • the entropy encoder 358 is further connected to the local processing unit 356 and to the bit-stream formatter 352 .
  • the local processing unit 356 is further connected to the output of the bit-stream processor 102 .
  • the bit-stream formatter 352 is connected to the output buffer 354 .
  • the output of the output buffer 354 is connected to the output of the bit-stream processor 102 .
  • the input of the micro-controller 158 is connected to the input of the bit-stream processor 102 .
  • the micro-controller 158 of the bit-stream processor 102 is connected to the processing unit, the entropy encoder 358 , temporary coefficient storage 360 , bit-stream formatter 352 and output buffer 354 .
  • bit-stream processor 102 can operate in two modes: programming and operational. Bit-stream processor 102 is operative to run according to both modes at the same time.
  • the global controller 110 (FIG. 3) loads the data and control parameters to micro-controller 350 and to local processing unit 356 .
  • the digital signal processor 104 (FIG. 3) loads the processed coefficients to the temporary coefficient storage 360 .
  • the entropy encoder 358 loads the data from the local processing unit 356 registers and the temporary coefficient storage 360 .
  • the entropy encoder 358 performs a series of encoding procedures, like zigzag/alternate scan, run-length encoding, variable length encoding of data, and the like, thereby producing encoded data.
  • the local processing unit 356 performs arithmetic and logical operations required to support the entropy encoding.
  • the local processing unit 356 also provides a temporary storage for the data loaded from the global controller 110 (FIG. 3) in the programming mode.
  • the bit-stream formatter 352 reads the encoded data from the entropy encoder 358 and formats it into a standard bit-stream.
  • the output buffer 354 provides a temporary storage to the bit-stream data.
  • the micro-controller 350 provides the control and synchronization signals to the local processing unit 356 , the entropy encoder 358 , the temporary coefficient storage 360 , the bit-stream formatter 352 and the output buffer 354 .
  • the global controller 110 can put the bit-stream processor 102 into programming or operational mode by loading an appropriate control signal to the micro-controller 158 of the bit-stream processor 102 .
  • Entropy encoding and computational operations in the bit-stream processor 102 are performed in parallel, by operating entropy encoder 358 and processing unit 356 , simultaneously. This allows a very efficient utilization of the bit-stream processor 102 resources.
  • FIG. 11 is a schematic illustration in detail of global controller 110 , of FIG. 3, constructed and operative in accordance with another preferred embodiment of the invention.
  • Global controller 110 includes a memory controller 400 , an exchange unit 406 , a register file 408 , a processing unit 410 , a host storage 404 and a micro-controller 402 .
  • the input of the micro-controller 402 is connected to the input of the global controller 110 .
  • the micro-controller 402 is connected to the memory controller 400 , exchange unit 406 , register file 408 , processing unit, host storage 404 and to output of global controller 110 .
  • the external storage interface of the global controller 110 is connected to the memory controller 400 .
  • the input/output of the memory controller 400 is connected to the input/output of the global controller 110 respectively.
  • the exchange unit 406 is connected to the register file 408 .
  • the register file 408 is connected to the processing unit 410 and to the host storage 404 of the global controller 110 .
  • the host storage 404 is connected to the host interface 120 (FIG. 3).
  • the global controller 110 schedules, synchronizes and controls motion estimation processor 108 , digital signal processor 104 , bit-stream processor 102 and video input processor 106 .
  • the global controller 110 controls the internal data transfer of device 100 and the external data transfer from device 100 to external devices such as memory unit 122 , an external host, and the like.
  • the global controller 110 can also initializes and performs a variety of testing procedures on motion estimation processor 108 , digital signal processor 104 , bit-stream processor 102 and video input processor 106 and also memory unit 122 .
  • the global controller 110 is a massively parallel processor, capable of simultaneous execution of computational operations, internal data transfer and external data transfer.
  • the global controller 110 operates in two modes: programming and operational. Global controller 110 is operative to run according to both modes at the same time.
  • an external host loads the data and control parameters to the host storage 404 .
  • the external host instruct the global controller 110 to perform according to the operational mode by loading a predetermined control signal into the host storage 404 .
  • the micro-controller 402 is synchronized to an external video source by the video synchronization signal which comes from the video input processor 106 (FIG. 3).
  • the micro-controller 402 provides control and synchronization signals to the motion estimation processor 108 , the digital signal processor 104 , the bit-stream processor 102 and the video input processor 106 .
  • the micro-controller 402 can also instruct each of these units to perform in accordance with a programming mode or an operational mode.
  • the global controller 110 loads a new frame from the video input processor 106 to the memory controller 400 .
  • the memory controller 400 transfers this data to the external storage.
  • the memory controller 400 also reads the current and reference frames macro-blocks from the external storage and transfers them to the motion estimation processor 108 (FIG. 3).
  • the memory controller 400 provides the control signals, addresses and the like to memory unit 122 (FIG. 3).
  • the exchange unit 406 of the global controller 110 reads and writes different data items to and from the motion estimation processor 108 , the digital signal processor 104 , the bit-stream processor 102 and the video input processor 106 .
  • the exchange unit 406 transfers the data to and from the register file 408 .
  • register file 408 maintains a memory structure such as a stack, which contains the sets of parameters associated with each macro-block.
  • This memory structure can be divided into multiple stacks of variable depth.
  • the processing unit 410 can read the data from the register file 408 , perform various arithmetic and logical operations, and store the processed data back into register file 408 .
  • the register file 408 can access the host storage 404 to retrieve the data which an external host loaded into the host storage 404 during the programming mode.
  • the register file 408 can also transfer the data to the host storage 404 , such that an external host can access the data during both programming and operational modes.
  • FIG. 12 is a schematic illustration of encoding device 100 , incorporated in a video camera, generally referenced 500 , constructed and operative in accordance with another preferred embodiment of the invention.
  • Camera 500 includes an optical assembly 502 , a charge coupled device (CCD) 510 , a host interface 504 , a random access memory 506 , a communication interface 520 , two storage units 508 and 516 and encoding device 100 .
  • CCD charge coupled device
  • Device 100 is connected to charge coupled device 510 , host interface 504 , a communication interface 520 , random access memory 506 and storage units 508 and 516 .
  • Host interface 504 includes a display 514 and a keyboard 512 and can be used to display the status of encoding device 100 as well as to receive instructions from a user.
  • Storage unit 508 is a tape based storage device.
  • Storage unit 516 is a disk based storage device, such as a magnetic hard drive, an optical storage device, a magneto-optical storage device and the like. It will be noted that other types of storage devices can also be used for this purpose, like semiconductor based memory units such as flash memory, RAM and the like.
  • CCD 510 converts light, arriving from the optical assembly 502 , representing an image, into an electrical signal.
  • CCD 510 is preferably a digital light sensitive device which can be replaced by an analog light sensitive device, followed by an analog to digital converter, for converting an analog video signal into a digital video signal.
  • CCD 510 provides the digital video signal to video input processor 106 , of encoding device 100 .
  • the encoding device 100 encodes the digital video signal, produces an encoded video signal and provides it at the output of bit-stream processor 102 .
  • the encoding device 100 uses a random access memory 506 as a temporary storage area for video data as well as analysis data, produced by its inner components.
  • Encoding device 100 provides the encoded video signal to storage devices 508 and 516 , and to communication interface 520 .
  • any of the storage units 508 and 516 as well as the communication interface 520 can provide digital video signal as input for device 100 .
  • storage device 516 is also connected to device 100 via the video input processor 106 .
  • the present invention provides an encoding device which can easily be adapted to ISO/IEC 11172 (MPEG-1) as well as other encoding standards which are similar to MPEG such as ISO/IEC H.320, H.261 and H.263, as well as different motion JPEG methods.

Abstract

A video encoding system includes a video source providing a multiple frame video signal, a compressed data interface, a host interface and a video encoding device. The video encoding device includes a video input processor, a global controller, a motion estimation processor, a digital signal processor and a bit-stream processor. The video input processor receives the video signal. The global controller controls the global operation of the video encoding device. The motion estimation processor is connected to the global controller. The digital signal processor is connected to the global controller and to the motion estimation processor. The bit-stream processor is connected to the digital signal processor, the global controller and the compressed data interface. The global controller stores encoding commands received from the host interface thereby programming the video input processor, the motion estimation processor, the digital signal processor and the bit-stream processor.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • This application a continuation application of U.S. Ser. No. 09/010.859, filed Jan. 22, 1998, which is incorporated in its entirety by reference herein.[0001]
  • FIELD OF THE INVENTION
  • The present invention relates to video encoding devices in general and to single chip video encoding devices, in particular. [0002]
  • BACKGROUND OF THE INVENTION
  • Methods for encoding an audio-visual signal are known in the art. According to these methods, a video signal is digitized, analyzed and encoded in a compressed manner. These methods are implemented in computer systems, either in software, hardware or a combined software-hardware form. [0003]
  • Most hardware encoding systems consist of a set of semiconductor circuits, which are arranged on a large circuit board. State of the art encoding systems include a single semiconductor circuit, which is based on a high power processor. [0004]
  • Reference is now made to FIG. 1, which is a schematic illustration of a video encoding circuit, referenced [0005] 10, which is known in the art.
  • [0006] Circuit 10 includes a motion estimation processor 12, a motion estimation memory unit 14 connected to the motion estimation processor 12, a Reduced Instruction Set Computer (RISC) processor 16 connected to the motion estimation processor 12 and an image buffer 18, connected to RISC processor 16.
  • [0007] RISC processor 16 transfers a portion of video signal from image buffer 18 to memory unit 14. Motion estimation processor 12 analyzes the motion of the video signal. Motion estimation processor 12 utilizes memory unit 14 as a storage area for the video signal portion which is currently processed by it. When the motion estimation processor 12 completed analyzing the motion of a video signal portion, it transfers the results of the motion estimation analysis to the RISC processor 16.
  • The [0008] RISC processor 16 performs all other processing and encoding tasks which the video signal has to undergo, such as discrete COSINE transform (DCT), quantization, entropy encoding, bit-stream production and the like. The RISC processor 16 utilizes the image buffer 18 as a storage area for the video signal portion which is currently processed by it, and as a temporary storage for its computational purposes.
  • It will be appreciated by-those skilled in the art that such encoding systems have several disadvantages. For example, one disadvantage of [0009] circuit 10 is that each of the processing units 12 and 16 have a separate storage area. Accordingly, each of the processed portions of video signal, such as and ISO/IEC 13818 (MPEG-2) macro-blocks, have to be transferred to both memory unit 14 and image buffer 18. RISC processor 16 has to access image buffer 18 for the same data, each time this data is required. Such Retrieval of large data blocks, many times, greatly increases data traffic volume over the encoding system data transmission lines.
  • Another disadvantage is that [0010] circuit 10 is able to execute all processing and encoding tasks in a serial manner, thereby capable of processing only a single macro-block at a time, requiring high operational processor frequencies. Circuit 10 receives a macro-block, processes it and produces an encoded bit-stream. Internally, the RISC processor 16 operates in the same manner.
  • Hence, as long as the [0011] RISC processor 10 hasn't completed transmitting the encoded bit-stream of a selected macro-block, it cannot receive the next macro-block.
  • It will be appreciated by those skilled in the art that the operational frequency of [0012] circuit 10 has a direct affect over the heat produced by it, thereby requiring large cooling elements as well as massive cooling devices such as fans and the like.
  • It will be appreciated by those skilled in the art that such circuit structure requires that input-output (I\O) operations have to be performed extremely fast, thereby greatly increasing the storage memory bandwidth requirements. [0013]
  • Another disadvantage of such systems is that all processing and encoding procedures (excluding motion estimation) are executed by the same RISC processor. In this case, the same circuit performs various types of computations, which makes the utilization of the processor's hardware resources very inefficient. [0014]
  • Methods for estimating motion in a video signal are known in the art. According to these methods a frame is compared with previous frames. The difference between the frames is used to estimate a level of motion. These methods analyze a frame and map it, thereby indicating areas in frame which have no motion over previous frames and areas in the frame which are assigned with a motion level. [0015]
  • According to one such like method each pixel in the search area is analyzed. This method requires a vast number of estimation operations and is thereby extremely resource consuming. This method is also called a full exhaustive search. [0016]
  • According to another method, known in the art, the search area is scanned in a center weighted manner, which can be logarithmic, and the like, whereby the center of the search area is scanned thoroughly at full resolution and the rest of the search area is scanned at lower resolution. Areas which detected as having some motion, in the low resolution search, are scanned again in full resolution. This reduces the overall number of estimation operations. [0017]
  • Reference is now made to FIG. 2, which is a schematic illustration of a Digital Signal Processing (DSP) processor, referenced [0018] 50, which is known in the art.
  • DSP [0019] processor 50 is of a single instruction multiple data (SIMD) type machine. It includes a plurality of identical processing units (P.U.) 52, 56 60, 64, 68 and 72, and a random access memory (RAM) 61. RAM 61 is divided into segments 54, 58, 62, 66, 70 and 74.
  • Each memory segment is exclusively assigned and connected to a processing unit, whereas [0020] RAM segment units 54, 58, 62, 66, 70 and 74 are assigned to and connected to processing units (P.U.) 52, 56, 60, 64, 68 and 72, respectively.
  • This structure has several disadvantages. One disadvantage of such machine is that the same operation is performed by all of the processing units at same time. [0021]
  • Another disadvantage of the SIMD machine is that the data is not shared among the processing units. For example, [0022] processing unit 56 can access data contained in RAM segment 66 via processing unit 64 only. It cannot do so directly. It will be appreciated by those skilled in the art that such a configuration is inefficient.
  • A further disadvantage is that individual operations that vary for different data items cannot be efficiently performed by an SIMD machine. The programming of such operations into the processing units, is very difficult. Such individual operations can be only performed in a serial manner, while masking all irrelevant data, resulting in shutting off most of the processing units. The utilization of the hardware resources in an SIMD machine during such programming operations is very low, and performance of the machine are dramatically decreased. [0023]
  • Another disadvantage relates to the interconnection structure between the processing units. It will be appreciated that, a processing unit within an SIMD machine is connected to a limited number of neighboring processing units. Hence communication between such a processing unit and a processing unit riot connected thereto, is often a complex operation. [0024]
  • Bit-stream processing and generation, in a conventional encoding circuit, is performed by a general purpose processor. Bit-stream generation requires some specific operations, which can not be performed efficiently by a general purpose processor. In order to perform such special operation, a general purpose processor uses a small portion of its processing resources, while shutting off rest of them. Therefore, the disadvantage is that the resources of such processor are not utilized efficiently. [0025]
  • SUMMARY OF THE PRESENT INVENTION
  • It is an object of the present invention to provide a novel device for encoding an audio-visual signal, which overcomes the disadvantages of the prior art. [0026]
  • There is therefore provided, in accordance with a preferred embodiment of the present invention, a video encoding system which includes a video source providing a multiple frame video signal, a compressed data interface, a host interface and a video encoding device. The video encoding device includes a video input processor, a global controller, a motion estimation processor, a digital signal processor and a bit-stream processor. The video input processor receives the video signal. The global controller controls the global operation of the video encoding device. The motion estimation processor is connected to the global controller. The digital signal processor is connected to the global controller and to the motion estimation processor. The bit-stream processor is connected to the digital signal processor, the global controller and the compressed data interface. The global controller stores encoding commands received from the host interface thereby programming the video input processor, the motion estimation processor, the digital signal processor and the bit-stream processor. [0027]
  • There is also provided, in accordance with a preferred embodiment of the present invention, a video camera including an optical assembly, a light sensitive device, detecting light via the optical assembly, thereby producing a video signal and a video encoding device, connected to the light sensitive device. The video encoding device includes a video source providing a multiple frame video signal, a compressed data interface, a host interface and a video encoding device. The video encoding device includes a video input processor, a global controller, a motion estimation processor, a digital signal processor and a bit-stream processor. The video input processor receives the video signal. The global controller controls the global operation of the video encoding device. The motion estimation processor is connected to the global controller. The digital signal processor is connected to the global controller and to the motion estimation processor. The bit-stream processor is connected to the digital signal processor, the global controller and the compressed data interface. The global controller stores encoding commands received from the host interface thereby programming the video input processor, the motion estimation processor, the digital signal processor and the bit-stream processor. [0028]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The present invention will be understood and appreciated more fully from the following detailed description taken in conjunction with the drawings in which: [0029]
  • FIG. 1 is a schematic illustration of an encoding circuit, known in the art; [0030]
  • FIG. 2 is a schematic illustration of an DSP unit, which is known in the art; [0031]
  • FIG. 3 is a schematic illustration of a video encoding device, constructed and operative in accordance with a preferred embodiment of the invention; [0032]
  • FIG. 4 is a schematic illustration of a video encoding device, constructed and operative in accordance with another preferred embodiment of the invention; [0033]
  • FIG. 5 is a schematic illustration in detail of the motion estimation processor, of the video encoding device of the device of FIG. 3, constructed and operative in accordance with a further preferred embodiment of the invention; [0034]
  • FIG. 6 is a schematic illustration of a video frame, including three resolution representation of a portion of this frame; [0035]
  • FIG. 7 is a schematic illustration in detail of the digital signal processor, of the video encoding device of FIG. 3, constructed and operative in accordance with another preferred embodiment of the invention; [0036]
  • FIG. 8 is a schematic illustration in detail of a digital signal processor, constructed and operative in accordance with a further preferred embodiment of the invention; [0037]
  • FIG. 9 is a schematic illustration in detail of the video input processor, of the encoding device of FIG. 3, constructed and operative in accordance with a further preferred embodiment of the invention; [0038]
  • FIG. 10 is a schematic illustration in detail of the bit-stream processor, of the encoding device of FIG. 3, constructed and operative in accordance with another preferred embodiment of the invention; [0039]
  • FIG. 11 is a schematic illustration in detail of the global controller of the encoding device of FIG. 3, constructed and operative in accordance with another preferred embodiment of the invention; and [0040]
  • FIG. 12 is a schematic illustration in detail of the encoding device of FIG. 3, incorporated in a video camera, constructed and operative in accordance with a further preferred embodiment of the invention. [0041]
  • DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
  • The present invention overcomes the disadvantages of the prior art by providing a novel approach to video compression processing and a novel structure for a device, according to this approach. [0042]
  • The device according to the invention is a massively parallel digital video processor designed, for the purpose of real-time video encoding, like MPEG. This device can be incorporated in a single chip, and installed in digital camcorders, recordable digital video disk (DVD), PC and workstation multimedia, educational and training systems, video conferencing, broadcast equipment, security, content creation/authoring/video editing equipment, and the like. [0043]
  • Reference is now made to FIG. 3, which is a schematic illustration of a video encoding device, generally referenced [0044] 100, constructed and operative in accordance with a preferred embodiment of the invention.
  • [0045] Device 100 includes a video input processor 106, a motion estimation processor 108, a digital signal processor 104, a bit-stream processor 102 and a global controller 110.
  • The [0046] video input processor 106 is connected to the global controller 110. The motion estimation processor 108 is connected to the global controller 110 and to the digital signal processor 104. The digital signal processor 104 is connected to the global controller 110 and to the bit-stream processor 102, which is also connected to the global controller 110.
  • The bit-[0047] stream processor 102 is further connected to a compressed data interface 128. The global controller 110 is further connected to a host interface 120 and to a memory unit 122. The input of the video input processor 106 is further connected to a digital video source (not shown) via a digital video interface 124. Such a host is typically a user interface which is operative to receive commands, operational parameters, and the like, from a user or a supervising system and also to provide to the user information received from device 100.
  • [0048] Device 100 operates in two modes: a programming mode and an operational mode. Device 100 is operative to run according to both modes at the same time. In the programming mode, an external host transfers the data and control parameters to the global controller 110, via the host interface 120.
  • The [0049] global controller 110 can transfer the data and control signals to the video input processor 106, motion estimation processor 108, digital signal processor 104 and bit-stream processor 102.
  • In the operational mode, the [0050] video input processor 106 captures motion video signal from an external video source via the digitized video interface 124. Video input processor 106 also performs preprocessing of the video signal, such as spatial filtering, noise reduction, image quality improvement, image size adjustment, and the like, color format conversion, and the like, thereby producing preprocessed video data.
  • [0051] Video input processor 106 accumulates the preprocessed video data into data blocks and transfers them to the global controller 110. Global controller 110 stores the data blocks in memory unit 122. In the present example, the device operates under MPEG-2 video compression standard. Hence, a data block represents an MPEG-2 macro-block, which is a sixteen by sixteen [16×16] matrix of luminance pixels and two, four or eight, eight by eight [8×8] matrices of chrominance pixels, as defined by the MPEG-2 standard. A reference frame represents a picture which is compared versus current picture during the motion estimation.
  • The [0052] global controller 110 retrieves a current picture macro-block and reference picture macro-blocks from the memory unit 122 and loads them to the motion estimation processor 108. Motion estimation processor 108 compares the current picture macro-block with the respective reference frame macro-blocks, thereby producing an estimation of the motion of the current picture macro-block.
  • The [0053] motion estimation processor 108 uses this estimation to remove temporal redundancy of the video signal, as will be described in detail hereinbelow. The motion estimation processor 108 transfers the resulting motion estimation data to the global controller 110. Motion estimation processor 108 also transfers the current picture macro-block and the corresponding reference frames macro-blocks to the digital signal processor 104.
  • Digital signal processor [0054] 104 (DSP) executes procedures which are intended to remove the spatial redundancy of the video signal, thereby producing a sequence of compression commands, as will be described in detail hereinbelow. This sequence of compression commands includes instruction as to which frame of the original video signal is to be compressed into an I-frame, a B-frame or a P-frame, and according to which reference frames.
  • Then, the [0055] digital signal processor 104 transfers the sequence of compressed data to the bit-stream processor 102 and to the global controller 110. The bit-stream processor 102 performs a series of encoding procedures, such as entropy encoding, and the like, as will be described in detail hereinbelow.
  • The bit-[0056] stream processor 102 compresses data into an MPEG-2 standard format data, in accordance with the sequence of compression commands.
  • Then, the bit-[0057] stream processor 102 transfers the MPEG-2 standard format data to the compressed data interface 128. It will be noted that compressed data interface 128 can be connected to any data receptacle element such as a storage unit or a communication transmission line.
  • [0058] Global controller 110 controls and schedules the video input processor 106 the motion estimation processor 108, the digital signal processor 104 and the bit-stream processor 102.
  • [0059] Global controller 110 also governs the data transfer among the motion estimation processor 108, digital signal processor 104 and the bit-stream processor 102.
  • The [0060] global controller 110 also connects between the external host and video input processor 106, motion estimation processor 108, digital signal processor 104 and bit-stream processor 102. In the operational mode, an external host can access the register file 408 (FIG. 10) of global controller 110 for read and/or write operations.
  • According to one aspect of the invention, in operational mode, macro-blocks are fed into [0061] device 100, in a horizontal or vertical raster scan manner, from the top left macro-block through to the right bottom macro-block, of a specified frame. Device 100 processes a number of successive macro-blocks, at the same time. For example, while the bit-stream processor 102 processes the i-th macro-block, digital signal processor 104 processes the i+1-th macro-block and motion estimation processor 108 processes the i+2-th through i+4-th macro-blocks.
  • According to another example, while the bit-[0062] stream processor 102 processes the i-th macro-block, digital signal processor 104 processes the k-th macro-block and motion estimation processor 108 processes the j-th through j+m-th macro-blocks, wherein i<k<j and m≧1.
  • [0063] Device 100 overcomes a disadvantage of the prior art by using memory unit 122 as a shared storage area which is accessible to all of its internal units, via global controller 110. In the present example, all access to storage unit 122 is provided via global controller 110.
  • Reference is now made to FIG. 4, which is a schematic illustration of a video encoding device, generally referenced [0064] 200, constructed and operative in accordance with another preferred embodiment of the invention.
  • [0065] Device 200 is generally similar to device 100 and includes a video input processor 206, a motion estimation processor 208, a digital signal processor 204, a bit-stream processor 202 and a global controller 210.
  • [0066] Device 200 is also connected to a compressed data interface 228, a memory unit 222, a digital video source (not shown) via a digital video interface 224 and a host interface 220. In device 200, all of the internal components are connected directly to memory unit 222.
  • Accordingly, [0067] video input processor 206, motion estimation processor 208, digital signal processor 204, bit-stream processor 202 and global controller 210 can, each, access any storage address within memory unit 222, directly, thereby performing any I\O operation.
  • It will be noted that a shared memory structure according to the invention can include a combination of the examples disclosed in FIGS. 3 and 4, whereby some components are directly connected to memory unit and the rest are connected to the memory unit via a mediating element, such as [0068] global controller 110.
  • Referring back to FIG. 3, it is noted that according to another aspect of the invention, [0069] memory unit 110 can partitioned into many sub-areas, whereby each of the internal units of device 100, is granted an access level which is selected from a list of access levels such as read-write, read only, write only, no access and the like. It will be appreciated by those skilled that such a structure provides tremendous flexibility, whereby the amount of memory assigned to a selected internal unit can be increased or decreased dynamically, in real-time.
  • According to another aspect of the present invention, [0070] device 100 performs different processing and encoding procedures in parallel, by processing a number of successive macro-blocks simultaneously. Hence, a selected macro-block is permitted to be present in the device 100 for an extended period of time, with comparison to device 10 (FIG. 1), thereby greatly reducing the operational frequency of device 100, by factor of at least five.
  • Reference is now made to FIGS. 5 and 6. FIG. 5 is a schematic illustration in detail of [0071] motion estimation processor 108, constructed and operative in accordance with a further preferred embodiment of the invention. FIG. 6 is a schematic illustration of a video frame, generally referenced 170, including three resolution representation of a portion of this frame, generally referenced A, B and C.
  • [0072] Motion estimation processor 108 includes a low resolution processor 150, a full resolution processor 152, a hyper resolution processor 154 and a local-controller 158. The frame input of the motion estimation processor 108 is connected to the inputs of the low resolution processor 150, the full resolution processor 152, the hyper resolution processor.
  • The frame output of [0073] motion estimation processor 108 is connected to the hyper resolution processor 154. The local-controller 158 is connected to the low resolution processor 150, the full resolution processor 152 and the hyper resolution processor and the control port of the motion estimation processor 108, which is connected to global controller 110 (FIG. 3).
  • Referring now to FIG. 6, [0074] frame 170 is a [6×6] matrix which includes a digital representation of a video frame Fi. The currently scanned block is block B, which is a [4×4] matrix from pixel B:(1,1) to pixel B:(4,4). Frame 170 is provided to processors 150, 152 and 154 (FIG. 5).
  • Referring back to FIG. 5, [0075] motion estimation processor 108 can operate in two modes: a programming mode and an operational mode. The motion estimation processor can operate according to both modes at the same time.
  • In the programming mode, the global controller [0076] 110 (FIG. 3) provides control parameters as well as data parameters, to micro-controller 158, via the control port.
  • Local-[0077] controller 158 controls and synchronizes processors 150, 152 and 154. According to a preferred embodiment of the present invention, processors 150, 152 and 154 operate either in a parallel or in a serial manner.
  • In an example of parallel operation, the [0078] low resolution processor 150 processes i-th macro-block, while the full resolution processor 152 processes I-1-th macro-block, whereas the hyper resolution processor 154 processes 1-2-th macro-block, all at the same time.
  • In an example of serial operation, the [0079] low resolution processor 150 processes i-th macro-block, while both full resolution processor 152 and the hyper resolution processor 154 process I+1-th macro-block in a serial manner.
  • [0080] Low resolution processor 150 operates as follows. The global controller 110 loads the current picture macro-block and the reference pictures data blocks into the low resolution processor 150. The low resolution processor 150 performs a resolution reduction, resulting in decreasing the amount of image data. The low resolution processor 150 can perform the resolution reduction by different methods, like decimation, low pass filtering, non-linear filtering, and the like.
  • Reference is now made to FIG. 6. In the present example, low resolution processor [0081] 150 (FIG. 5) generates a low resolution block A from block B. Block A is a [2×2] matrix, wherein pixel A:(1,1) is a combined representation of pixels B:(1,1), B:(1,2), B:(2,1) and B:(2,2), pixel A:(2,1) is a combined representation of pixels B:(3,1), B:(3,2), B:(4,1) and B:(4,2), pixel A:(1,2) is a combined representation of pixels B:(1,3), B:(1,4), B:(2,3) and B:(2,4) and pixel A:(2,2) is a combined representation of pixels B:(3,3), B:(3,4), B:(4,3) and B:(4,4).
  • It will be noted that such pixel combination can be performed in many ways such as calculating the average value of the combined pixels, selecting the dominant one, and the like. [0082]
  • The resolution reduction of the present example is at a ratio of 1:4. It will be noted that [0083] low resolution processor 150 can perform a resolution reduction at any ratio desired.
  • After low resolution processor completes the resolution reduction, then, it performs a search procedure. The [0084] low resolution processor 150 can performs different types of search, like full exhaustive search, telescopic search, and the like, thereby producing low resolution motion analysis. After the search is completed, the global controller 110 (FIG. 3) reads the low resolution motion analysis data from the low resolution processor 150, via the local controller 158.
  • [0085] Full resolution processor 152 operates as follows: The global controller 110 loads the current picture block (referenced B in FIG. 6) and the reference pictures data block into the full resolution processor 152, according to the low resolution motion analysis. Then, the full resolution processor 152 performs a search procedure.
  • The [0086] full resolution processor 152 can perform different types of search, like full exhaustive search, telescopic search, and the like, thereby producing full resolution motion analysis. After the search is completed, the global controller 110 reads the full resolution motion analysis data from the full resolution processor 152, via the local controller 158.
  • [0087] Full resolution processor 152 and hyper resolution processor 154 can have a shared storage area. This aspect of the invention reduces the memory requirements of the encoding system.
  • [0088] Hyper resolution processor 154 operates as follows: The global controller 110 loads the current picture macro-block and the reference pictures data blocks into the hyper resolution processor 154. The hyper resolution processor 154 multiplies the resolution of the image data, enabling a motion prediction with a resolution higher than a single pixel step.
  • [0089] Hyper resolution processor 154 can perform the resolution multiplication by different methods, like zero order interpolation, first order interpolation, and the like.
  • With reference to FIG. 6, in the present example, hyper resolution processor [0090] 154 (FIG. 5) generates a hyper resolution block C from block B. Block C is a [9×9] matrix, wherein pixels C:(1,1), C:(3,1), C:(5,1), C:(7,1), C:(1,3), C:(3,3), C:(5,3), C:(7,3), C:(1,5), C:(3,5), C:(5,5), C:(7,5), C:(1,7), C:(3,7), C:(5,7) and C:(7,7) are equal to pixels B:(1,1), B:(2,1), B:(3,1), B:(4,1), B:(1,2), B:(2,2), B:(3,2), B:(4,2), B:(1,3), B:(2,3), B:(3,3), B:(4,3), B:(1,4), B:(2,4), B:(3,4) and B:(4,4), respectively.
  • Each other pixel in block C: can be an interpolation of selected B: pixels adjacent to its respective place therein. For example, pixel C:(2,2) is an interpolation of pixels B:(1,1), B:(1,2), B:(2,1) and B:(2,2). Pixel C:(2,1) is an interpolation of pixels B:(1,1), and B:(2,1). Pixel C:(1,0) is an interpolation of pixels B:(1,0), and B:(1,1). [0091]
  • The resolution enhancement of the present example is at a ratio of 4:1. It will be noted that [0092] hyper resolution processor 154 can perform a resolution enhancement at any ratio desired.
  • After the [0093] hyper resolution processor 154 completes the resolution multiplication, it performs a search procedure. The hyper resolution processor 154 can perform different types of search, like full exhaustive search, telescopic search, and the like, thereby producing hyper resolution motion analysis. After the search is completed, the global controller 110 reads the hyper resolution motion analysis data, from the hyper resolution processor 154, via the local controller 158.
  • A motion estimation processor according to another embodiment of the invention can include as many resolution processors as desired, wherein some resolution processors are low resolution processors, at a variety of low resolutions and other resolution processors are hyper resolution processors, at a variety of hyper resolutions. [0094]
  • Reference is now made to FIG. 7, which is a schematic illustration in detail of [0095] digital signal processor 104, of FIG. 3, constructed and operative in accordance with another preferred embodiment of the invention.
  • [0096] Digital signal processor 104 includes a master controller 250, a random access unit (RAM) 270 and N processing units 252, 254, 256, 258, 260 and 262. Each processing unit 252, 254, 256, 258, 260 and 262 is connected to the master controller 250 and to the RAM 270.
  • The [0097] processing units 252, 254, 256, 258, 260 and 262 are further connected to motion estimation processor 108 and to the global controller 110 (FIG. 3), for retrieving macro block data therefrom.
  • [0098] Digital signal processor 104 can operate in two modes: a programming mode and an operational mode. Digital signal processor 104 can operate according to both modes at the same time. In the programming mode, the global controller 110 (FIG. 3) transfers data and control parameters to/from master controller 250. The master controller 250 can independently program each processing unit 252, 254, 256, 258, 260 and 262.
  • In the operational mode, the [0099] master controller 250 and all processing units 252, 254, 256, 258, 260 and 262, operate in parallel. The motion estimation processor 108 (FIG. 3) transfers the current macro-block and the reference macro-blocks data to the processing units 252, 254, 256, 258, 260 and 262 of the digital signal processor 104. In the present example, the motion estimation processor 108 (FIG. 3) provides luminance macro-blocks and the global controller 110 provides chrominance macro-blocks retrieved from memory unit 122.
  • The [0100] global controller 110 transfers the appropriate data (like motion vectors, macro-block type, perdition type, and the like) to the master controller 250. The master controller 250 performs special processing procedures such as like rate control, DCT type selection, macro-block type selection and the like.
  • The [0101] master controller 250 distributes control instructions to the processing units 252, 254, 256, 258, 260 and 262, and receives processed data from each of these processing units. Processing units 252, 254, 256, 258, 260 and 262 perform processing procedures on large data blocks, such as discrete cosine transform (DCT), inverse discrete cosine transform (IDCT), quantization, inverse quantization, frame type decisions, and the like.
  • Each of these processing units processes different data blocks. Each processing unit can access the data blocks associated with other processing units, in [0102] RAM 270. All processing unit can execute different operations in parallel. The processing units transfer the processed coefficient data to the bit-stream processor 102 (FIG. 3). The master controller 250 of the digital signal processor 104 transfers the appropriate data (like macro-block type, DCT type, quantizer scale, etc.) to the global controller 110 (FIG. 3).
  • The present invention overcomes the disadvantages of the prior art by configuring the [0103] master controller 250 so as to perform individual processing tasks on some data items while the processing units 252, 254, 256, 258, 260 and 262, simultaneously perform massive processing tasks on large data blocks.
  • According to the present example, the [0104] master controller 250 temporarily assigns a storage area in RAM 270, to each of the processing unit 252, 254, 256, 258, 260 and 262.
  • Hence, each [0105] processing unit 252, 254, 256, 258, 260 and 262 can access the data which is associated with the other processing units. It will be appreciated by those skilled in the art that such a structure greatly enhances the efficiency of processing and data transfer operations in DSP 104. Such parallel access structure of the processing units also allows very fast and efficient data transfer to and from the digital signal processor 104.
  • Reference is now made to FIG. 8, which is a schematic illustration in detail of a digital signal processor, generally referenced [0106] 144, constructed and operative in accordance with a further preferred embodiment of the invention.
  • [0107] Digital signal processor 144 is generally similar to digital signal processor 104, with a slightly different memory structure. Digital signal processor 144 includes a master controller 288, N processing units 271, 274, 276, 280, 282 and 286 and N/2 random access units (RAM) 272, 278 and 284.
  • Each RAM unit is connected to two processing unit. Processing [0108] units 271 and 274 are connected to RAM unit 272. Processing units 276 and 280 are connected to RAM unit 278. Processing units 282 and 286 are connected to RAM unit 284.
  • Each processing unit is able to access any address in the RAM unit connected thereto. [0109]
  • According to FIGS. 7 and 8 it will be appreciated that the invention is not limited to any shared memory structure between processing units. [0110]
  • Reference is now made to FIG. 9, which is a schematic illustration in detail of [0111] video input processor 106, of FIG. 3, constructed and operative in accordance with a further preferred embodiment of the invention.
  • [0112] Video input processor 106 includes a video capture unit 230, a video preprocessor 232 and a temporary video storage 236. The inputs of the video capture unit 230, the video preprocessor 232 and the temporary video storage 236 are connected to the video input processor 106 (FIG. 3). The input of the video capture unit 230 is connected to video input processor 106. The video capture unit 230 is connected to the video preprocessor 232. The video preprocessor 232 is connected to the temporary video storage 236. The output of the temporary video storage 236 is connected to the global controller 110.
  • [0113] Video input processor 106 operates in two modes: programming and operational. Video input processor 106 is operative to run according to both modes at the same time. In the programming mode, the global controller 110 (FIG. 3) loads data and control parameters to the video capture unit 230, to the video preprocessor 232 and to the temporary video storage 236.
  • In the operational mode, the [0114] video capture unit 230 acquires the input video signal. The video capture unit 230 is self synchronized with the input video signal, according to its format (NTSC, PAL, SECAM, and the like), programmable resolution (DI, SIF, QSIF, and the like), and the like.
  • The [0115] video capture unit 230 also provides video synchronization signals (like a new frame start, a new field start, etc.) to the global controller 110.
  • The [0116] video preprocessor 232 performs a series of video processing procedures to enhance the captured video signal. The video processing procedures can include a color format conversion, size reduction, noise reduction, edge sharpening, image quality improvement, and the like.
  • The [0117] temporary video storage 236 accumulates the processed video signal and provides a “data ready” signal to the global controller 110 (FIG. 3). The global controller 110 reads the accumulated image data from the temporary video storage 236. The global controller 110 also provides control signals to the video input processor 106.
  • The usage of the [0118] temporary video storage 236 allows to efficiently adjust the data rates of an external video signal and the internal data transfer. The video input processor 106 can accumulate the processed video signal in a real time variable rate whereas the global controller 110 can transfer the accumulated data to the memory unit 122 in a burst. This greatly reduces the memory bandwidth requirements, and makes the usage of a memory unit 122 more efficient.
  • Reference is now made to FIG. 10, which is a schematic illustration in detail of bit-[0119] stream processor 102, of FIG. 3, constructed and operative in accordance with a further preferred embodiment of the invention.
  • Bit-[0120] stream processor 102 includes a local processing unit 356, an entropy encoder 358, a temporary coefficient storage 360, a bit-stream formatter 352, an output buffer 354 and a micro-controller 350. The input of the bit-stream processor 102 is connected to the input of the temporary coefficient storage 360 and of the local processing unit 356. The temporary coefficient storage 360 is connected to the entropy encoder 358. The entropy encoder 358 is further connected to the local processing unit 356 and to the bit-stream formatter 352. The local processing unit 356 is further connected to the output of the bit-stream processor 102. The bit-stream formatter 352 is connected to the output buffer 354. The output of the output buffer 354 is connected to the output of the bit-stream processor 102. The input of the micro-controller 158 is connected to the input of the bit-stream processor 102. The micro-controller 158 of the bit-stream processor 102 is connected to the processing unit, the entropy encoder 358, temporary coefficient storage 360, bit-stream formatter 352 and output buffer 354.
  • The bit-[0121] stream processor 102 can operate in two modes: programming and operational. Bit-stream processor 102 is operative to run according to both modes at the same time.
  • In the programming mode, the global controller [0122] 110 (FIG. 3) loads the data and control parameters to micro-controller 350 and to local processing unit 356. The digital signal processor 104 (FIG. 3) loads the processed coefficients to the temporary coefficient storage 360.
  • In the operational mode, the [0123] entropy encoder 358 loads the data from the local processing unit 356 registers and the temporary coefficient storage 360. The entropy encoder 358 performs a series of encoding procedures, like zigzag/alternate scan, run-length encoding, variable length encoding of data, and the like, thereby producing encoded data.
  • The [0124] local processing unit 356 performs arithmetic and logical operations required to support the entropy encoding. The local processing unit 356 also provides a temporary storage for the data loaded from the global controller 110 (FIG. 3) in the programming mode.
  • The bit-[0125] stream formatter 352 reads the encoded data from the entropy encoder 358 and formats it into a standard bit-stream. The output buffer 354 provides a temporary storage to the bit-stream data. The micro-controller 350 provides the control and synchronization signals to the local processing unit 356, the entropy encoder 358, the temporary coefficient storage 360, the bit-stream formatter 352 and the output buffer 354.
  • The [0126] global controller 110 can put the bit-stream processor 102 into programming or operational mode by loading an appropriate control signal to the micro-controller 158 of the bit-stream processor 102.
  • Entropy encoding and computational operations in the bit-[0127] stream processor 102 are performed in parallel, by operating entropy encoder 358 and processing unit 356, simultaneously. This allows a very efficient utilization of the bit-stream processor 102 resources.
  • Reference is now made to FIG. 11, which is a schematic illustration in detail of [0128] global controller 110, of FIG. 3, constructed and operative in accordance with another preferred embodiment of the invention.
  • [0129] Global controller 110 includes a memory controller 400, an exchange unit 406, a register file 408, a processing unit 410, a host storage 404 and a micro-controller 402. The input of the micro-controller 402 is connected to the input of the global controller 110. The micro-controller 402 is connected to the memory controller 400, exchange unit 406, register file 408, processing unit, host storage 404 and to output of global controller 110. The external storage interface of the global controller 110 is connected to the memory controller 400. The input/output of the memory controller 400 is connected to the input/output of the global controller 110 respectively. The exchange unit 406 is connected to the register file 408. The register file 408 is connected to the processing unit 410 and to the host storage 404 of the global controller 110. The host storage 404 is connected to the host interface 120 (FIG. 3).
  • With further reference to FIG. 3, the [0130] global controller 110 schedules, synchronizes and controls motion estimation processor 108, digital signal processor 104, bit-stream processor 102 and video input processor 106. The global controller 110 controls the internal data transfer of device 100 and the external data transfer from device 100 to external devices such as memory unit 122, an external host, and the like. The global controller 110 can also initializes and performs a variety of testing procedures on motion estimation processor 108, digital signal processor 104, bit-stream processor 102 and video input processor 106 and also memory unit 122. The global controller 110 is a massively parallel processor, capable of simultaneous execution of computational operations, internal data transfer and external data transfer.
  • The [0131] global controller 110 operates in two modes: programming and operational. Global controller 110 is operative to run according to both modes at the same time.
  • According to the programming mode, an external host loads the data and control parameters to the [0132] host storage 404. The external host instruct the global controller 110 to perform according to the operational mode by loading a predetermined control signal into the host storage 404.
  • According to the operational mode, the [0133] micro-controller 402 is synchronized to an external video source by the video synchronization signal which comes from the video input processor 106 (FIG. 3).
  • The [0134] micro-controller 402 provides control and synchronization signals to the motion estimation processor 108, the digital signal processor 104, the bit-stream processor 102 and the video input processor 106. The micro-controller 402 can also instruct each of these units to perform in accordance with a programming mode or an operational mode.
  • According to the operational mode, the [0135] global controller 110 loads a new frame from the video input processor 106 to the memory controller 400. The memory controller 400 transfers this data to the external storage. The memory controller 400 also reads the current and reference frames macro-blocks from the external storage and transfers them to the motion estimation processor 108 (FIG. 3).
  • The [0136] memory controller 400 provides the control signals, addresses and the like to memory unit 122 (FIG. 3).
  • According to the operational mode, the [0137] exchange unit 406 of the global controller 110 reads and writes different data items to and from the motion estimation processor 108, the digital signal processor 104, the bit-stream processor 102 and the video input processor 106.
  • The [0138] exchange unit 406 transfers the data to and from the register file 408. In order to support the simultaneous parallel processing of multiple macro-blocks in device 100, register file 408 maintains a memory structure such as a stack, which contains the sets of parameters associated with each macro-block.
  • This memory structure can be divided into multiple stacks of variable depth. The [0139] processing unit 410 can read the data from the register file 408, perform various arithmetic and logical operations, and store the processed data back into register file 408.
  • The [0140] register file 408 can access the host storage 404 to retrieve the data which an external host loaded into the host storage 404 during the programming mode.
  • The [0141] register file 408 can also transfer the data to the host storage 404, such that an external host can access the data during both programming and operational modes.
  • Reference is now made to FIG. 12, which is a schematic illustration of [0142] encoding device 100, incorporated in a video camera, generally referenced 500, constructed and operative in accordance with another preferred embodiment of the invention.
  • [0143] Camera 500 includes an optical assembly 502, a charge coupled device (CCD) 510, a host interface 504, a random access memory 506, a communication interface 520, two storage units 508 and 516 and encoding device 100.
  • [0144] Device 100 is connected to charge coupled device 510, host interface 504, a communication interface 520, random access memory 506 and storage units 508 and 516.
  • [0145] Host interface 504 includes a display 514 and a keyboard 512 and can be used to display the status of encoding device 100 as well as to receive instructions from a user.
  • [0146] Storage unit 508 is a tape based storage device. Storage unit 516 is a disk based storage device, such as a magnetic hard drive, an optical storage device, a magneto-optical storage device and the like. It will be noted that other types of storage devices can also be used for this purpose, like semiconductor based memory units such as flash memory, RAM and the like.
  • [0147] CCD 510 converts light, arriving from the optical assembly 502, representing an image, into an electrical signal. CCD 510 is preferably a digital light sensitive device which can be replaced by an analog light sensitive device, followed by an analog to digital converter, for converting an analog video signal into a digital video signal.
  • Then, [0148] CCD 510 provides the digital video signal to video input processor 106, of encoding device 100. The encoding device 100 encodes the digital video signal, produces an encoded video signal and provides it at the output of bit-stream processor 102. During the encoding process, the encoding device 100 uses a random access memory 506 as a temporary storage area for video data as well as analysis data, produced by its inner components.
  • [0149] Encoding device 100 provides the encoded video signal to storage devices 508 and 516, and to communication interface 520.
  • It will be appreciated that any of the [0150] storage units 508 and 516 as well as the communication interface 520 can provide digital video signal as input for device 100. In the present example, storage device 516 is also connected to device 100 via the video input processor 106.
  • It will be noted that the present invention provides an encoding device which can easily be adapted to ISO/IEC 11172 (MPEG-1) as well as other encoding standards which are similar to MPEG such as ISO/IEC H.320, H.261 and H.263, as well as different motion JPEG methods. [0151]
  • It will be appreciated by persons skilled in the art that the present invention is not limited to what has been particularly shown and described hereinabove. Rather the scope of the present invention is defined by the claims which follow. [0152]

Claims (10)

1-31. (Canceled)
32. A motion estimation device comprising:
a motion estimation processor;
a global controller; and
a plurality of resolution processors connected to the global controller, the plurality of resolution processors analyzing development of a digital video signal in time and performing motion analysis upon the digital video signal, wherein the global controller is adapted to control the plurality of resolution processors and interface with the motion estimation processor.
33. The motion estimation device according to claim 32, wherein the plurality of resolution processors comprise at least one low resolution processor adapted to produce low resolution motion analysis.
34. The motion estimation device according to claim 33, wherein the at least one low resolution processor is adapted to reduce resolution of a selected frame before producing low motion analysis.
35. The motion estimation device according to claim 32, wherein the plurality of resolution processors comprise at least one full resolution processor adapted to produce full resolution motion analysis.
36. The motion estimation device according to claim 32, wherein the plurality of resolution processors comprise at least one hyper resolution processor adapted to produce hyper resolution motion analysis.
37. The motion estimation device according to claim 36, wherein the at least one hyper resolution processor is adapted to enhance resolution of a selected frame before producing hyper resolution motion analysis.
38. The motion estimation device according to claim 32, wherein the plurality of resolution processors are at least adapted to acquire and store motion analysis information in at least one storage unit.
39. The motion estimation device according to claim 32, wherein the plurality of resolution processors are each at least adapted to operate according to a same corresponding program command and a different corresponding program command.
40. The motion estimation device according to claim 32, wherein the plurality of resolution processors are each at least adapted to operate up one of a same portion and different portions of information comprising a digital video signal.
US10/887,950 1997-11-25 2004-07-09 Video encoding device Abandoned US20040240548A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/887,950 US20040240548A1 (en) 1997-11-25 2004-07-09 Video encoding device

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
IL122299 1997-11-25
IL12229997A IL122299A (en) 1997-11-25 1997-11-25 Video encoding device
US09/010,859 US6385244B1 (en) 1997-11-25 1998-01-22 Video encoding device
US09/988,878 US6847686B2 (en) 1997-11-25 2001-11-19 Video encoding device
US10/059,295 US6757329B2 (en) 1997-11-25 2002-01-31 Video encoding device
US10/887,950 US20040240548A1 (en) 1997-11-25 2004-07-09 Video encoding device

Related Parent Applications (2)

Application Number Title Priority Date Filing Date
US09/988,878 Continuation US6847686B2 (en) 1997-11-25 2001-11-19 Video encoding device
US10/059,295 Continuation US6757329B2 (en) 1997-11-25 2002-01-31 Video encoding device

Publications (1)

Publication Number Publication Date
US20040240548A1 true US20040240548A1 (en) 2004-12-02

Family

ID=11070893

Family Applications (5)

Application Number Title Priority Date Filing Date
US09/010,859 Expired - Lifetime US6385244B1 (en) 1997-11-25 1998-01-22 Video encoding device
US09/988,878 Expired - Lifetime US6847686B2 (en) 1997-11-25 2001-11-19 Video encoding device
US10/059,295 Expired - Lifetime US6757329B2 (en) 1997-11-25 2002-01-31 Video encoding device
US10/878,180 Abandoned US20040233986A1 (en) 1997-11-25 2004-06-28 Video encoding device
US10/887,950 Abandoned US20040240548A1 (en) 1997-11-25 2004-07-09 Video encoding device

Family Applications Before (4)

Application Number Title Priority Date Filing Date
US09/010,859 Expired - Lifetime US6385244B1 (en) 1997-11-25 1998-01-22 Video encoding device
US09/988,878 Expired - Lifetime US6847686B2 (en) 1997-11-25 2001-11-19 Video encoding device
US10/059,295 Expired - Lifetime US6757329B2 (en) 1997-11-25 2002-01-31 Video encoding device
US10/878,180 Abandoned US20040233986A1 (en) 1997-11-25 2004-06-28 Video encoding device

Country Status (6)

Country Link
US (5) US6385244B1 (en)
EP (1) EP1032913B1 (en)
JP (1) JP2001524766A (en)
AU (1) AU1349599A (en)
IL (1) IL122299A (en)
WO (1) WO1999027487A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080079733A1 (en) * 2006-09-28 2008-04-03 Richard Benson Video Processing Architecture Having Reduced Memory Requirement
US20100074337A1 (en) * 2008-09-24 2010-03-25 International Business Machines Corporation Macro-Block Video Stream Encoding
WO2013071215A1 (en) * 2011-11-10 2013-05-16 Intel Corporation Memory controller for video analytics and encoding
US9888051B1 (en) * 2011-03-31 2018-02-06 Amazon Technologies, Inc. Heterogeneous video processing using private or public cloud computing resources
US10869108B1 (en) 2008-09-29 2020-12-15 Calltrol Corporation Parallel signal processing system and method

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010050943A1 (en) 1989-08-03 2001-12-13 Mahany Ronald L. Radio frequency communication network having adaptive communication parameters
US6389010B1 (en) 1995-10-05 2002-05-14 Intermec Ip Corp. Hierarchical data collection network supporting packetized voice communications among wireless terminals and telephones
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
EP0688488A1 (en) * 1993-03-05 1995-12-27 MANKOVITZ, Roy J. Apparatus and method using compressed codes for television program record scheduling
US6388714B1 (en) * 1995-10-02 2002-05-14 Starsight Telecast Inc Interactive computer system for providing television schedule information
AU4175797A (en) * 1996-09-03 1998-03-26 Starsight Telecast Incorporated Schedule system with enhanced recording capability
US6786420B1 (en) 1997-07-15 2004-09-07 Silverbrook Research Pty. Ltd. Data distribution mechanism in the form of ink dots on cards
US6618117B2 (en) 1997-07-12 2003-09-09 Silverbrook Research Pty Ltd Image sensing apparatus including a microcontroller
US7110024B1 (en) 1997-07-15 2006-09-19 Silverbrook Research Pty Ltd Digital camera system having motion deblurring means
US6624848B1 (en) 1997-07-15 2003-09-23 Silverbrook Research Pty Ltd Cascading image modification using multiple digital cameras incorporating image processing
US6690419B1 (en) 1997-07-15 2004-02-10 Silverbrook Research Pty Ltd Utilising eye detection methods for image processing in a digital image camera
US6879341B1 (en) 1997-07-15 2005-04-12 Silverbrook Research Pty Ltd Digital camera system containing a VLIW vector processor
US7551201B2 (en) 1997-07-15 2009-06-23 Silverbrook Research Pty Ltd Image capture and processing device for a print on demand digital camera system
IL122299A (en) * 1997-11-25 2003-11-23 Broadcom Corp Video encoding device
CN1867068A (en) 1998-07-14 2006-11-22 联合视频制品公司 Client-server based interactive television program guide system with remote server recording
AR020608A1 (en) * 1998-07-17 2002-05-22 United Video Properties Inc A METHOD AND A PROVISION TO SUPPLY A USER REMOTE ACCESS TO AN INTERACTIVE PROGRAMMING GUIDE BY A REMOTE ACCESS LINK
EP1099339B1 (en) * 1998-07-17 2002-10-09 United Video Properties, Inc. Interactive television program guide having multiple devices at one location
US20020170064A1 (en) * 2001-05-11 2002-11-14 Monroe David A. Portable, wireless monitoring and control station for use in connection with a multi-media surveillance system having enhanced notification functions
AUPP702098A0 (en) 1998-11-09 1998-12-03 Silverbrook Research Pty Ltd Image creation method and apparatus (ART73)
US7904187B2 (en) 1999-02-01 2011-03-08 Hoffberg Steven M Internet appliance system and method
IL129345A (en) 1999-04-06 2004-05-12 Broadcom Corp Video encoding and video/audio/data multiplexing device
AUPQ056099A0 (en) * 1999-05-25 1999-06-17 Silverbrook Research Pty Ltd A method and apparatus (pprint01)
KR20010108756A (en) * 2000-05-31 2001-12-08 박종섭 One-chip audio system processor
US7671889B2 (en) * 2000-06-07 2010-03-02 Real D Autostereoscopic pixel arrangement techniques
KR20130066712A (en) 2000-10-11 2013-06-20 유나이티드 비디오 프로퍼티즈, 인크. Systems and methods for delivering media content
US7698450B2 (en) 2000-11-17 2010-04-13 Monroe David A Method and apparatus for distributing digitized streaming video over a network
US20020136302A1 (en) * 2001-03-21 2002-09-26 Naiqian Lu Cascade window searching method and apparatus
US20030012281A1 (en) * 2001-07-09 2003-01-16 Samsung Electronics Co., Ltd. Motion estimation apparatus and method for scanning an reference macroblock window in a search area
JP2004112738A (en) * 2002-07-25 2004-04-08 Fujitsu Ltd Resolution conversion method and pixel data processing circuit for single-ccd color-image sensor
KR100598093B1 (en) * 2003-01-29 2006-07-07 삼성전자주식회사 Apparatus and method with low memory bandwidth for video data compression
US7493646B2 (en) 2003-01-30 2009-02-17 United Video Properties, Inc. Interactive television systems with digital video recording and adjustable reminders
US7433519B2 (en) * 2003-04-04 2008-10-07 Avid Technology, Inc. Bitstream format for compressed image data
CN101044485A (en) * 2003-06-18 2007-09-26 安布里克股份有限公司 Integrated circuit development system
US20070186076A1 (en) * 2003-06-18 2007-08-09 Jones Anthony M Data pipeline transport system
US20050157949A1 (en) * 2003-09-30 2005-07-21 Seiji Aiso Generation of still image
KR20050078709A (en) * 2004-01-31 2005-08-08 삼성전자주식회사 Method for scalable video coding and decoding, and apparatus for the same
US7558718B2 (en) * 2004-09-28 2009-07-07 Broadcom Corporation Method and system for design verification of video processing systems with unbalanced data flow
US8806533B1 (en) 2004-10-08 2014-08-12 United Video Properties, Inc. System and method for using television information codes
US7885979B2 (en) * 2005-05-31 2011-02-08 Sorenson Media, Inc. Method, graphical interface and computer-readable medium for forming a batch job
US7975219B2 (en) * 2005-05-31 2011-07-05 Sorenson Media, Inc. Method, graphical interface and computer-readable medium for reformatting data
US8296649B2 (en) * 2005-05-31 2012-10-23 Sorenson Media, Inc. Method, graphical interface and computer-readable medium for generating a preview of a reformatted preview segment
JP2007189518A (en) * 2006-01-13 2007-07-26 Matsushita Electric Ind Co Ltd Signal processing apparatus, imaging device, network camera system, and video system
US8418206B2 (en) 2007-03-22 2013-04-09 United Video Properties, Inc. User defined rules for assigning destinations of content
US8879636B2 (en) * 2007-05-25 2014-11-04 Synopsys, Inc. Adaptive video encoding apparatus and methods
US8611423B2 (en) * 2008-02-11 2013-12-17 Csr Technology Inc. Determination of optimal frame types in video encoding
US8601526B2 (en) * 2008-06-13 2013-12-03 United Video Properties, Inc. Systems and methods for displaying media content and media guidance information
US10063934B2 (en) 2008-11-25 2018-08-28 Rovi Technologies Corporation Reducing unicast session duration with restart TV
US9307267B2 (en) * 2008-12-11 2016-04-05 Nvidia Corporation Techniques for scalable dynamic data encoding and decoding
US8125933B2 (en) 2009-02-27 2012-02-28 Research In Motion Limited Mobile wireless communications device including a differential output LNA connected to multiple receive signal chains
US8165045B2 (en) * 2009-02-27 2012-04-24 Research In Motion Limited Mobile wireless communications device including a power divider connecting an LNA to multiple receive signal chains
US9204193B2 (en) 2010-05-14 2015-12-01 Rovi Guides, Inc. Systems and methods for media detection and filtering using a parental control logging application
KR101928910B1 (en) 2011-08-30 2018-12-14 쏘닉 아이피, 아이엔씨. Systems and methods for encoding and streaming video encoded using a plurality of maximum bitrate levels
US8805418B2 (en) 2011-12-23 2014-08-12 United Video Properties, Inc. Methods and systems for performing actions based on location-based rules
US9532080B2 (en) 2012-05-31 2016-12-27 Sonic Ip, Inc. Systems and methods for the reuse of encoding information in encoding alternative streams of video data
US9350990B2 (en) 2013-02-28 2016-05-24 Sonic Ip, Inc. Systems and methods of encoding multiple video streams with adaptive quantization for adaptive bitrate streaming
US9357210B2 (en) * 2013-02-28 2016-05-31 Sonic Ip, Inc. Systems and methods of encoding multiple video streams for adaptive bitrate streaming
EP3005689A4 (en) * 2013-05-24 2017-01-11 Sonic IP, Inc. Systems and methods of encoding multiple video streams with adaptive quantization for adaptive bitrate streaming
US10091419B2 (en) 2013-06-14 2018-10-02 Qualcomm Incorporated Computer vision application processing
US10148989B2 (en) 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content

Citations (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4831463A (en) * 1987-01-30 1989-05-16 Faroudja Y C Video processing in which high frequency luminance components are folded into a mid-band spectrum
US5239654A (en) * 1989-11-17 1993-08-24 Texas Instruments Incorporated Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode
US5260783A (en) * 1991-02-21 1993-11-09 Gte Laboratories Incorporated Layered DCT video coder for packet switched ATM networks
US5267021A (en) * 1992-04-03 1993-11-30 The Trustees Of Columbia University In The City Of New York Multiresolution digital television broadcast system
US5276513A (en) * 1992-06-10 1994-01-04 Rca Thomson Licensing Corporation Implementation architecture for performing hierarchical motion analysis of video images in real time
US5377051A (en) * 1993-01-13 1994-12-27 Hitachi America, Ltd. Digital video recorder compatible receiver with trick play image enhancement
US5410649A (en) * 1989-11-17 1995-04-25 Texas Instruments Incorporated Imaging computer system and network
US5414469A (en) * 1991-10-31 1995-05-09 International Business Machines Corporation Motion video compression system with multiresolution features
US5461423A (en) * 1992-05-29 1995-10-24 Sony Corporation Apparatus for generating a motion vector with half-pixel precision for use in compressing a digital motion picture signal
US5481727A (en) * 1989-05-10 1996-01-02 Mitsubishi Denki Kabushiki Kaisha Bus control for a plurality of digital signal processors connected to a common memory
US5510857A (en) * 1993-04-27 1996-04-23 Array Microsystems, Inc. Motion estimation coprocessor
US5512962A (en) * 1993-05-25 1996-04-30 Nec Corporation Motion vector detecting apparatus for moving picture
US5539893A (en) * 1993-11-16 1996-07-23 Unisys Corporation Multi-level memory and methods for allocating data most likely to be used to the fastest memory level
US5598483A (en) * 1993-04-13 1997-01-28 C-Cube Microsystems, Inc. MPEG video decompression processor
US5610658A (en) * 1994-01-31 1997-03-11 Sony Corporation Motion vector detection using hierarchical calculation
US5640563A (en) * 1992-01-31 1997-06-17 International Business Machines Corporation Multi-media computer operating system and method
US5691768A (en) * 1995-07-07 1997-11-25 Lucent Technologies, Inc. Multiple resolution, multi-stream video system using a single standard decoder
US5748247A (en) * 1996-04-08 1998-05-05 Tektronix, Inc. Refinement of block motion vectors to achieve a dense motion field
US5761200A (en) * 1993-10-27 1998-06-02 Industrial Technology Research Institute Intelligent distributed data transfer system
US5761398A (en) * 1995-12-26 1998-06-02 C-Cube Microsystems Inc. Three stage hierarchal motion vector determination
US5821886A (en) * 1996-10-18 1998-10-13 Samsung Electronics Company, Ltd. Variable length code detection in a signal processing system
US5822606A (en) * 1996-01-11 1998-10-13 Morton; Steven G. DSP having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
US5832445A (en) * 1995-03-23 1998-11-03 Sican Gmbh Method and apparatus for decoding of digital audio data coded in layer 1 or 2 of MPEG format
US5846704A (en) * 1992-11-27 1998-12-08 N.V. Innogenetics S.A. Process for typing of HCV isolates
US5940542A (en) * 1995-10-20 1999-08-17 Competitive Technologies Of Pa, Inc. Encoding and decoding apparatus and method for analog and digital signals
US6005621A (en) * 1996-12-23 1999-12-21 C-Cube Microsystems, Inc. Multiple resolution video compression
US6061779A (en) * 1998-01-16 2000-05-09 Analog Devices, Inc. Digital signal processor having data alignment buffer for performing unaligned data accesses
US6067322A (en) * 1997-06-04 2000-05-23 Microsoft Corporation Half pixel motion estimation in motion video signal encoding
US6141446A (en) * 1994-09-21 2000-10-31 Ricoh Company, Ltd. Compression and decompression system with reversible wavelets and lossy reconstruction
US6157677A (en) * 1995-03-22 2000-12-05 Idt International Digital Technologies Deutschland Gmbh Method and apparatus for coordination of motion determination over multiple frames
US6188381B1 (en) * 1997-09-08 2001-02-13 Sarnoff Corporation Modular parallel-pipelined vision system for real-time video processing
US6192075B1 (en) * 1997-08-21 2001-02-20 Stream Machine Company Single-pass variable bit-rate control for digital video coding
US6260088B1 (en) * 1989-11-17 2001-07-10 Texas Instruments Incorporated Single integrated circuit embodying a risc processor and a digital signal processor
US6321318B1 (en) * 1997-12-31 2001-11-20 Texas Instruments Incorporated User-configurable on-chip program memory system
US6335950B1 (en) * 1997-10-14 2002-01-01 Lsi Logic Corporation Motion estimation engine
US6549575B1 (en) * 1996-11-07 2003-04-15 International Business Machines Corporation. Efficient, flexible motion estimation architecture for real time MPEG2 compliant encoding
US6847686B2 (en) * 1997-11-25 2005-01-25 Broadcom Corporation Video encoding device
US7016545B1 (en) * 1994-09-21 2006-03-21 Ricoh Co., Ltd. Reversible embedded wavelet system implementation

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04139986A (en) * 1990-09-29 1992-05-13 Victor Co Of Japan Ltd Coding/decoding device for movement compensation prediction of picture signal
US5212742A (en) * 1991-05-24 1993-05-18 Apple Computer, Inc. Method and apparatus for encoding/decoding image data
US5259040A (en) 1991-10-04 1993-11-02 David Sarnoff Research Center, Inc. Method for determining sensor motion and scene structure and image processing system therefor
US5231486A (en) * 1992-07-27 1993-07-27 General Electric Company Data separation processing in a dual channel digital high definition television system
EP0779011B1 (en) * 1994-09-02 2001-11-28 Sarnoff Corporation Method and apparatus for global-to-local block motion estimation

Patent Citations (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4831463A (en) * 1987-01-30 1989-05-16 Faroudja Y C Video processing in which high frequency luminance components are folded into a mid-band spectrum
US5481727A (en) * 1989-05-10 1996-01-02 Mitsubishi Denki Kabushiki Kaisha Bus control for a plurality of digital signal processors connected to a common memory
US5239654A (en) * 1989-11-17 1993-08-24 Texas Instruments Incorporated Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode
US6260088B1 (en) * 1989-11-17 2001-07-10 Texas Instruments Incorporated Single integrated circuit embodying a risc processor and a digital signal processor
US5410649A (en) * 1989-11-17 1995-04-25 Texas Instruments Incorporated Imaging computer system and network
US5260783A (en) * 1991-02-21 1993-11-09 Gte Laboratories Incorporated Layered DCT video coder for packet switched ATM networks
US5414469A (en) * 1991-10-31 1995-05-09 International Business Machines Corporation Motion video compression system with multiresolution features
US5640563A (en) * 1992-01-31 1997-06-17 International Business Machines Corporation Multi-media computer operating system and method
US5267021A (en) * 1992-04-03 1993-11-30 The Trustees Of Columbia University In The City Of New York Multiresolution digital television broadcast system
US5461423A (en) * 1992-05-29 1995-10-24 Sony Corporation Apparatus for generating a motion vector with half-pixel precision for use in compressing a digital motion picture signal
US5276513A (en) * 1992-06-10 1994-01-04 Rca Thomson Licensing Corporation Implementation architecture for performing hierarchical motion analysis of video images in real time
US5846704A (en) * 1992-11-27 1998-12-08 N.V. Innogenetics S.A. Process for typing of HCV isolates
US5377051A (en) * 1993-01-13 1994-12-27 Hitachi America, Ltd. Digital video recorder compatible receiver with trick play image enhancement
US5598483A (en) * 1993-04-13 1997-01-28 C-Cube Microsystems, Inc. MPEG video decompression processor
US5510857A (en) * 1993-04-27 1996-04-23 Array Microsystems, Inc. Motion estimation coprocessor
US5512962A (en) * 1993-05-25 1996-04-30 Nec Corporation Motion vector detecting apparatus for moving picture
US5761200A (en) * 1993-10-27 1998-06-02 Industrial Technology Research Institute Intelligent distributed data transfer system
US5539893A (en) * 1993-11-16 1996-07-23 Unisys Corporation Multi-level memory and methods for allocating data most likely to be used to the fastest memory level
US5610658A (en) * 1994-01-31 1997-03-11 Sony Corporation Motion vector detection using hierarchical calculation
US7016545B1 (en) * 1994-09-21 2006-03-21 Ricoh Co., Ltd. Reversible embedded wavelet system implementation
US6141446A (en) * 1994-09-21 2000-10-31 Ricoh Company, Ltd. Compression and decompression system with reversible wavelets and lossy reconstruction
US6157677A (en) * 1995-03-22 2000-12-05 Idt International Digital Technologies Deutschland Gmbh Method and apparatus for coordination of motion determination over multiple frames
US5832445A (en) * 1995-03-23 1998-11-03 Sican Gmbh Method and apparatus for decoding of digital audio data coded in layer 1 or 2 of MPEG format
US5691768A (en) * 1995-07-07 1997-11-25 Lucent Technologies, Inc. Multiple resolution, multi-stream video system using a single standard decoder
US5940542A (en) * 1995-10-20 1999-08-17 Competitive Technologies Of Pa, Inc. Encoding and decoding apparatus and method for analog and digital signals
US5761398A (en) * 1995-12-26 1998-06-02 C-Cube Microsystems Inc. Three stage hierarchal motion vector determination
US5822606A (en) * 1996-01-11 1998-10-13 Morton; Steven G. DSP having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
US5748247A (en) * 1996-04-08 1998-05-05 Tektronix, Inc. Refinement of block motion vectors to achieve a dense motion field
US5821886A (en) * 1996-10-18 1998-10-13 Samsung Electronics Company, Ltd. Variable length code detection in a signal processing system
US6549575B1 (en) * 1996-11-07 2003-04-15 International Business Machines Corporation. Efficient, flexible motion estimation architecture for real time MPEG2 compliant encoding
US6005621A (en) * 1996-12-23 1999-12-21 C-Cube Microsystems, Inc. Multiple resolution video compression
US6067322A (en) * 1997-06-04 2000-05-23 Microsoft Corporation Half pixel motion estimation in motion video signal encoding
US6192075B1 (en) * 1997-08-21 2001-02-20 Stream Machine Company Single-pass variable bit-rate control for digital video coding
US6188381B1 (en) * 1997-09-08 2001-02-13 Sarnoff Corporation Modular parallel-pipelined vision system for real-time video processing
US6335950B1 (en) * 1997-10-14 2002-01-01 Lsi Logic Corporation Motion estimation engine
US6847686B2 (en) * 1997-11-25 2005-01-25 Broadcom Corporation Video encoding device
US6321318B1 (en) * 1997-12-31 2001-11-20 Texas Instruments Incorporated User-configurable on-chip program memory system
US6061779A (en) * 1998-01-16 2000-05-09 Analog Devices, Inc. Digital signal processor having data alignment buffer for performing unaligned data accesses

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080079733A1 (en) * 2006-09-28 2008-04-03 Richard Benson Video Processing Architecture Having Reduced Memory Requirement
US8487947B2 (en) 2006-09-28 2013-07-16 Agere Systems Inc. Video processing architecture having reduced memory requirement
US20100074337A1 (en) * 2008-09-24 2010-03-25 International Business Machines Corporation Macro-Block Video Stream Encoding
CN101686388A (en) * 2008-09-24 2010-03-31 国际商业机器公司 Video streaming encoding device and method thereof
US8218642B2 (en) * 2008-09-24 2012-07-10 International Business Machines Corporation Macro-block video stream encoding
US10869108B1 (en) 2008-09-29 2020-12-15 Calltrol Corporation Parallel signal processing system and method
US9888051B1 (en) * 2011-03-31 2018-02-06 Amazon Technologies, Inc. Heterogeneous video processing using private or public cloud computing resources
WO2013071215A1 (en) * 2011-11-10 2013-05-16 Intel Corporation Memory controller for video analytics and encoding
CN103918002A (en) * 2011-11-10 2014-07-09 英特尔公司 Memory controller for video analytics and encoding
US9179156B2 (en) 2011-11-10 2015-11-03 Intel Corporation Memory controller for video analytics and encoding

Also Published As

Publication number Publication date
AU1349599A (en) 1999-06-15
IL122299A (en) 2003-11-23
EP1032913A4 (en) 2006-10-18
US6847686B2 (en) 2005-01-25
US6385244B1 (en) 2002-05-07
US6757329B2 (en) 2004-06-29
US20020085638A1 (en) 2002-07-04
US20020131501A1 (en) 2002-09-19
JP2001524766A (en) 2001-12-04
WO1999027487A1 (en) 1999-06-03
IL122299A0 (en) 1998-04-05
US20040233986A1 (en) 2004-11-25
EP1032913A1 (en) 2000-09-06
EP1032913B1 (en) 2016-11-02

Similar Documents

Publication Publication Date Title
US6847686B2 (en) Video encoding device
US7751480B2 (en) Video encoding and video/audio/data multiplexing device
US6026217A (en) Method and apparatus for eliminating the transpose buffer during a decomposed forward or inverse 2-dimensional discrete cosine transform through operand decomposition storage and retrieval
US7158571B2 (en) System and method for balancing video encoding tasks between multiple processors
US6101276A (en) Method and apparatus for performing two pass quality video compression through pipelining and buffer management
US6006276A (en) Enhanced video data compression in intelligent video information management system
US5995080A (en) Method and apparatus for interleaving and de-interleaving YUV pixel data
US20020015513A1 (en) Motion vector detecting method, record medium on which motion vector calculating program has been recorded, motion detecting apparatus, motion detecting method, picture encoding apparatus, picture encoding method, motion vector calculating method, record medium on which motion vector calculating program has been recorded
JP2952196B2 (en) Video signal encoding apparatus and method
JP3097665B2 (en) Time-lapse recorder with anomaly detection function
US20060050971A1 (en) Slab-based processing engine for motion video
JP2008506294A (en) Method and system for performing deblocking filtering
US7330595B2 (en) System and method for video data compression
US20010014123A1 (en) Method for processing video
Bahl et al. Software-only compression, rendering, and playback of digital video
JPH02105679A (en) Reproducing device and recorder for digital image
CA2326674C (en) Video compression in information system
EP0944265A2 (en) Movement vector generating apparatus and method, and image encoding apparatus and method
YAMAUCHI et al. A single-chip JPEG2000 encode processor capable of compressing D1-images at 30 frames/s without tile division
JP2000050278A (en) Motion vector calculation method, and recording medium recorded with motion vector calculation program therein
KR0161927B1 (en) Method for encoding the digital video data
JPH06205400A (en) Picture processing unit
JPH10304385A (en) Moving picture converter
Lu et al. Cell blade based H. 264 video encoding engine for large scale video surveillance applications
Zhang A high-performance, low power and memory-efficient VLD for MPEG applications

Legal Events

Date Code Title Description
AS Assignment

Owner name: BROADCOM CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:VISIONTECH LTD.;REEL/FRAME:036535/0574

Effective date: 20011031

Owner name: VISIONTECH LTD., ISRAEL

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MORAD, AMIR;YAVITS, LEONID;REEL/FRAME:036535/0549

Effective date: 19980528

AS Assignment

Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:037806/0001

Effective date: 20160201

Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:037806/0001

Effective date: 20160201

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:041706/0001

Effective date: 20170120

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:041706/0001

Effective date: 20170120

AS Assignment

Owner name: BROADCOM CORPORATION, CALIFORNIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041712/0001

Effective date: 20170119