US20140344486A1 - Methods and apparatus for storing and delivering compressed data - Google Patents
Methods and apparatus for storing and delivering compressed data Download PDFInfo
- Publication number
- US20140344486A1 US20140344486A1 US14/282,004 US201414282004A US2014344486A1 US 20140344486 A1 US20140344486 A1 US 20140344486A1 US 201414282004 A US201414282004 A US 201414282004A US 2014344486 A1 US2014344486 A1 US 2014344486A1
- Authority
- US
- United States
- Prior art keywords
- data
- direct memory
- dma
- compressed data
- engine
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N17/00—Diagnosis, testing or measuring for television systems or their details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1423—Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/003—Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
- G09G5/006—Details of the interface to the display terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N1/32561—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device using a programmed control device, e.g. a microprocessor
- H04N1/32571—Details of system components
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N17/00—Diagnosis, testing or measuring for television systems or their details
- H04N17/04—Diagnosis, testing or measuring for television systems or their details for receivers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/4363—Adapting the video or multiplex stream to a specific local network, e.g. a IEEE 1394 or Bluetooth® network
- H04N21/43632—Adapting the video or multiplex stream to a specific local network, e.g. a IEEE 1394 or Bluetooth® network involving a wired protocol, e.g. IEEE 1394
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/44231—Monitoring of peripheral device or external card, e.g. to detect processing problems in a handheld device or the failure of an external recording device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6582—Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2350/00—Solving problems of bandwidth in display systems
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/04—Exchange of auxiliary data, i.e. other than image data, between monitor and graphics controller
- G09G2370/045—Exchange of auxiliary data, i.e. other than image data, between monitor and graphics controller using multiple communication channels, e.g. parallel and serial
- G09G2370/047—Exchange of auxiliary data, i.e. other than image data, between monitor and graphics controller using multiple communication channels, e.g. parallel and serial using display data channel standard [DDC] communication
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/10—Use of a protocol of communication by packets in interfaces along the display data pipeline
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Automation & Control Theory (AREA)
- Databases & Information Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Debugging And Monitoring (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Methods and apparatus for storing and delivering compressed data are disclosed. In one embodiment, a direct memory access (DMA) unit with a lossless coder/decoder (CODEC) receives uncompressed data. The direct memory access unit then compresses the uncompressed data to produce lossless compressed data, and stores the lossless compressed data in a memory, wherein the compressing operation and the storing operation are each part of a direct memory access (DMA) write operation. In another embodiment, the direct memory access (DMA) unit receives lossless compressed data. The direct memory access unit then decompresses the compressed data to produce lossless decompressed data, and delivers the decompressed data to an output device, wherein the decompressing operation and the receiving operation are each part of a direct memory access (DMA) read operation.
Description
- This application claims priority to Provisional Application Ser. No. 61/825,249, filed on May 20, 2013, having inventors Winthrop Wu and Sebastien Nussbaum, titled “METHODS AND APPARATUS FOR STORING AND DELIVERING COMPRESSED DATA”, and is incorporated herein by reference.
- The present disclosure relates in general to computing systems, and, in particular, to methods and apparatus for storing and delivering compressed data.
- In order to store and transmit large amounts of data, the data is often compressed. As a result, many electronic devices must compress and decompress large amounts of data. For example, a digital video may be more efficiently stored and transmitted in a compressed form. However, in order to display the digital video on a high definition television or monitor, the video data may need to be decompressed.
- Compression and decompression are computationally intensive tasks. Accordingly, many electronic devices have a dedicated hardware coder/decoder (CODEC). In addition, moving large amounts of memory from one location to another location often requires a significant amount of time. Accordingly, many electronic devices have a dedicated direct memory access (DMA) unit.
- However, even with a dedicated hardware coder/decoder (CODEC) and a dedicated direct memory access (DMA) unit, a large amount of central processing unit cycles are consumed managing the interaction between these two devise when a large amount of data needs to be moved and compressed or decompressed (e.g., digital video and/or digital audio).
-
FIG. 1 is a block diagram of an example network communication system. -
FIG. 2 is a block diagram of an example electronic device incorporating a direct memory access unit with a lossless coder/decoder (DMA/CODEC). -
FIG. 3 is a block diagram of an example processing unit employing a direct memory access unit with a lossless coder/decoder (DMA/CODEC). -
FIG. 4 is a block diagram of an example direct memory access unit with a lossless coder/decoder (DMA/CODEC). -
FIG. 5 is a flowchart of an example process for storing data using a direct memory access unit with a lossless coder/decoder (DMA/CODEC). -
FIG. 6 is a flowchart of an example process for delivering data using a direct memory access unit with a lossless coder/decoder (DMA/CODEC). -
FIG. 7 is a flowchart of another example process for storing data using a direct memory access unit with a lossless coder/decoder (DMA/CODEC). -
FIG. 8 is a flowchart of another example process for delivering data using a direct memory access unit with a lossless coder/decoder (DMA/CODEC). - Briefly, methods and apparatus for storing and delivering compressed data are disclosed. In an embodiment, the apparatus includes a direct memory access (DMA) engine operatively coupled to a lossless compression engine. The direct memory access (DMA) engine is structured to perform a direct memory write operation of lossless compressed data, and the lossless compression engine is structured to produce the lossless compressed data as part of the direct memory write operation.
- Among other features, electronic devices employing the disclosed direct memory access (DMA) engine with integrated coder/decoder (CODEC) are able to perform large memory transfers where compression and/or decompression are used (e.g., retrieving compressed video from memory and sending the uncompressed version of the video to a graphics processing unit) with minimal intervention from the central processing unit. As a result, the central processing unit is free to perform other tasks.
- In one example, the direct memory access (DMA) engine is structured to (a) cause the lossless compressed data to be produced in response to an initiation by a central processing unit (CPU) and (b) perform the direct memory storage operation without further interaction by the central processing unit (CPU). In one example, the lossless compression engine is structured to segment uncompressed data and reassemble corresponding lossless compressed data. In one example, the lossless compression engine is structured to send the lossless compressed data via a communication channel.
- Turning now to the figures, in general, a direct memory access (DMA) unit includes a lossless compression engine and/or a lossless decompression engine (CODEC). In one mode of operation, the direct memory access (DMA) unit compresses uncompressed data and stores the compressed data in a memory as part of a direct memory access (DMA) write operation. For example, the direct memory access (DMA) unit may compress and store video information as the video information is received from a video camera (i.e., “on the fly”). In another mode of operation, the direct memory access (DMA) unit decompresses compressed data and delivers the decompressed data to an output device as part of a direct memory access (DMA) read operation. For example, the direct memory access (DMA) unit may decompress and deliver video information to a display via a graphics processing unit (GPU). In both modes of operation, the operation may be initiated by a central processing unit (CPU). However, the operation is typically performed without further interaction by the central processing unit (CPU).
- The direct memory access (DMA) unit with integrated coder/decoder (CODEC) may be part of a wide variety of devices. For example, the DMA/CODEC may be part of networked video game console. A block diagram of certain elements of an example
network communications system 100 is illustrated inFIG. 1 . The illustratedsystem 100 includes one or more client devices 102 (e.g., computer, television, camera, phone), one ormore web servers 106, and one ormore databases 108. Each of these devices may communicate with each other via a connection to one ormore communications channels 110 such as the Internet or some other wired and/or wireless data network, including, but not limited to, any suitable wide area network or local area network. It will be appreciated that any of the devices described herein may be directly connected to each other instead of over a network. - The
web server 106 stores a plurality of files, programs, and/or web pages in one ormore databases 108 for use by theclient devices 102 as described in detail below. Thedatabase 108 may be connected directly to theweb server 106 and/or via one or more network connections. Thedatabase 108 stores data as described in detail below. - One
web server 106 may interact with a large number ofclient devices 102. Accordingly, eachserver 106 is typically a high end computer with a large storage capacity, one or more fast microprocessors, and one or more high speed network connections. Conversely, relative to atypical server 106, eachclient device 102 typically includes less storage capacity, a single microprocessor, and a single network connection. - Each of the devices illustrated in
FIG. 1 (e.g.,client 102 and/or server 106) may include certain common aspects of many electronic devices such as microprocessors, memories, direct memory access units, peripherals, etc.FIG. 2 is a block diagram of an example electronic device incorporating a direct memory access unit with a lossless coder/decoder (DMA/CODEC). For example, theelectrical device 200 may be a client, a server, a camera, a phone, and/or a television. - The example
electrical device 200 includes amain unit 202 which may include, if desired, one ormore processing units 204 electrically coupled by an address/data bus 206 to one ormore memories 208,other computer circuitry 210, and one ormore interface circuits 212. Theprocessing unit 204 may include any suitable processor or plurality of processors. In addition, theprocessing unit 204 may include other components that support the one or more processors. For example, theprocessing unit 204 may include a central processing unit (CPU), a graphics processing unit (GPU), and/or a direct memory access (DMA) unit. - The
memory 208 may include various types of non-transitory memory including volatile memory and/or non-volatile memory such as, but not limited to, distributed memory, read-only memory (ROM), random access memory (RAM) etc. Thememory 208 typically stores a software program that interacts with the other devices in the system as described herein. This program may be executed by theprocessing unit 204 in any suitable manner. Thememory 208 may also store digital data indicative of documents, files, programs, web pages, etc. retrieved from a server and/or loaded via aninput device 214. - The
interface circuit 212 may be implemented using any suitable interface standard, such as an Ethernet interface and/or a Universal Serial Bus (USB) interface. One ormore input devices 214 may be connected to theinterface circuit 212 for entering data and commands into themain unit 202. For example, theinput device 214 may be a keyboard, mouse, touch screen, track pad, isopoint, camera, voice recognition system, accelerometer, global positioning system (GPS), and/or any other suitable input device. - One or more displays, printers, speakers, monitors, televisions, high definition televisions, and/or other suitable high
bandwidth output devices 216 may also be connected to themain unit 202 via theinterface circuit 212. Highbandwidth output devices 216 typical consume uncompressed data, such as uncompressed audio and/or video data. For example, a display for displaying decompressed video data may be a cathode ray tube (CRTs), liquid crystal displays (LCDs), electronic ink (e-ink), and/or any other suitable type of display. - One or
more storage devices 218 may also be connected to themain unit 202 via theinterface circuit 212. For example, a hard drive, CD drive, DVD drive, and/or other storage devices may be connected to themain unit 202. Thestorage devices 218 may store any type of data used by thedevice 200. - The
electrical device 200 may also exchange data with one or more low bandwidth input/output (I/O)devices 220. Low bandwidth I/O devices 220 typical produce and/or consume compressed data, such as compressed audio and/or video data. For example, low bandwidth I/O devices 220 may include network routers, camera, audio players, thumb drives etc. - The
electrical device 200 may also exchange data withother network devices 222 via a connection to anetwork 110. The network connection may be any type of network connection, such as an Ethernet connection, digital subscriber line (DSL), telephone line, coaxial cable,wireless base station 230, etc. Users 114 of thesystem 100 may be required to register with aserver 106. In such an instance, each user 114 may choose a user identifier (e.g., e-mail address) and a password which may be required for the activation of services. The user identifier and password may be passed across thenetwork 110 using encryption built into the user's browser. Alternatively, the user identifier and/or password may be assigned by theserver 106. - In some embodiments, the
device 200 may be awireless device 200. In such an instance, thedevice 200 may include one ormore antennas 224 connected to one or more radio frequency (RF)transceivers 226. Thetransceiver 226 may include one or more receivers and one or more transmitters operating on the same and/or different frequencies. For example, thedevice 200 may include ablue tooth transceiver 216, a Wi-Fi transceiver 216, and diversitycellular transceivers 216. Thetransceiver 226 allows thedevice 200 to exchange signals, such as voice, video and data, withother wireless devices 228, such as a phone, camera, monitor, television, and/or high definition television. For example, thedevice 200 may send and receive wireless telephone signals, text messages, audio signals and/or video signals directly and/or via abase station 230. A receive signal strength indicator (RSSI) associated with each receiver generates an indication of the relative strength or weakness of each signal being received by thedevice 200. -
FIG. 3 is a block diagram of anexample processing unit 204 employing a direct memory access unit with a lossless coder/decoder (DMA/CODEC) 304. In this example, the DMA/CODEC 304 is operatively coupled to a central processing unit (CPU) 302 and a graphics processing unit (GPU) 306. Thecentral processing unit 302 initiates a data transfer via the DMA/CODEC 304 by sending data transfer instructions. The data transfer instructions may be indicative of a read operation and/or a write operation. Once thecentral processing unit 302 initiates the data transfer by sending the instructions to the DMA/CODEC 304, the DMA/CODEC 304 carries out the memory transfer operation without further intervention needed from thecentral processing unit 302. Once the DMA/CODEC 304 completes the data transfer operation, the DMA/CODEC 304 notifies thecentral processing unit 302 that the data transfer is complete by asserting an interrupt line. - For example the
central processing unit 302 may send data transfer instructions to the DMA/CODEC 304 indicating that the DMA/CODEC 304 should retrieve a certain section ofmemory 208, decompress the data from thememory 208 and send the decompressed data to thegraphics processing unit 306. In this example, thegraphics processing unit 306 may then transmit the decompressed data to a highbandwidth output device 216, such as a display or television. - In another example, the
central processing unit 302 may send data transfer instructions to the DMA/CODEC indicating that the DMA/CODEC should receive uncompressed data, compress that data and send the compressed data to some destination without further intervention by thecentral processing unit 302. For example, a highbandwidth input device 214 such as a video camera and/or microphone interfaced viainterface circuit 212 may send uncompressed video data to the DMA/CODEC 304. The DMA/CODEC 304 may then compresses the uncompressed data and store the compressed data inmemory 208 and/or send the compressed data to one or more low bandwidth I/O devices 220 via interface circuit to 212. For example, the DMA/CODEC 304 may send the compressed data to a network router and/or an audio player. -
FIG. 4 is a block diagram of an example direct memory access unit with a lossless coder/decoder (DMA/CODEC). In this example the DMA/CODEC 304 includes aDMA engine 402, alossless compression engine 404, and alossless decompression engine 406. In an example, aCPU 302 and/or aGPU 306 sends data transfer instructions to theDMA engine 402. A high bandwidth input device may then send uncompressed data to theDMA engine 402 without further intervention from theCPU 302 orGPU 306. For example, a high definition video recorder may send a long stream of uncompressed video data to theDMA engine 402. TheDMA engine 402 then sends the uncompressed data in segments to thelossless compression engine 404, and thelossless compression engine 404 returns the data to theDMA engine 402 in compressed form. TheDMA engine 402 then stores the compressed data to a data storage device such asmemory 208. - In another example,
CPU 302 and/or aGPU 306 may send data transfer instructions to theDMA engine 402 to retrieve compressed data frommemory 208 and transfer the data in uncompressed form to a high bandwidth output device. For example, theDMA engine 402 may retrieve compressed video data frommemory 208, and send the compressed video data tolossless decompression engine 406, which returns the data in decompressed segments to theDMA engine 402. TheDMA engine 402 may then send the decompressed data to the high-bandwidth output device. For example, theDMA engine 402 may send uncompressed video data to a high-definition display 216. As discussed in more detail below with reference toFIG. 5 andFIG. 6 , each of these data storage and retrieval operations perform the lossless compression or decompression on the fly. Accordingly, segments of data are processed in parallel. -
FIG. 5 is a flowchart of anexample process 500 for storing data using a direct memory access unit with a lossless coder/decoder (DMA/CODEC). Although theprocess 500 is described with reference to the flowchart illustrated inFIG. 5 , it will be appreciated that many other methods of performing the acts associated withprocess 500 may be used. For example, the order of many of the operations may be changed, and some of the operations described may be optional. - In general, a
DMA engine 402 receives uncompressed data, segments the uncompressed data, and forwards each uncompressed data segment to thelossless compression engine 404. After thelossless compression engine 404 returns the compressed data to theDMA engine 402, theDMA engine 402 reassembles the compressed data segments into the overall compressed data stream and then stores and/or sends the compressed data to a memory device and/or a low bandwidth I/O device 220. - More specifically, in this example, the
process 500 begins when theDMA engine 402 receives or retrieves uncompressed data (block 502). For example, theDMA engine 402 may receive or retrieve uncompressed audio and/or video data from one or more input devices such as a microphone or camera. TheDMA engine 402 then segments the uncompressed data as the uncompressed data is being received or retrieved (block 504). TheDMA engine 402 then forwards each uncompressed data segment to the lossless compression engine 404 (block 506). Thelossless compression engine 404 then compresses that data segment (block 508). - After the
lossless compression engine 404 returns the compressed data to theDMA engine 402, theDMA engine 402 reassembles the compressed data segments into the overall compressed data stream (block 510). For example, theDMA engine 402 may be reassembling a compressed video stream. TheDMA engine 402 then stores and/or sends the compressed data to a memory device and/or a low bandwidth I/O device 220 (block 512). For example, theDMA engine 402 may store the compressed data inmemory 208, and/or theDMA engine 402 may send the compressed data to a network router, camera, audio player, thumb drive, and/or any other suitable device. - Each of these steps in
process 500 may be executed in parallel with one or more of the other steps in 500. For example, after uncompressed data is received, the uncompressed data may be segmented and compressed at the same time that new data is being received. Similarly, as compressed data is produced, the compressed data may be reassembled and stored on the fly at the same time as new data is being received, segmented and compressed. -
FIG. 6 is a flowchart of anexample process 600 for delivering data using a direct memory access unit with a lossless coder/decoder (DMA/CODEC). Although theprocess 600 is described with reference to the flowchart illustrated inFIG. 6 , it will be appreciated that many other methods of performing the acts associated withprocess 600 may be used. For example, the order of many of the operations may be changed, and some of the operations described may be optional. - In general, a
DMA engine 402 receives compressed data, segments the compressed data, and forwards each compressed data segment to thelossless decompression engine 406. After thelossless decompression engine 406 returns the decompressed data to theDMA engine 402, theDMA engine 402 reassembles the decompressed data segments into the overall decompressed data stream and then stores and/or sends the decompressed data to a memory device and/or a highbandwidth output device 216. - More specifically, in this example, the
process 600 begins when theDMA engine 402 receives or retrieves compressed data (block 602). For example, theDMA engine 402 may receive or retrieve compressed audio and/or video data from one ormore memories 208 and/or one or more low bandwidth I/O devices 220 such as a network router, camera, audio player, etc. TheDMA engine 402 then segments the compressed data as the compressed data is being received or retrieved (block 604). TheDMA engine 402 then forwards each compressed data segment to the lossless decompression engine 406 (block 606). Thelossless decompression engine 406 then decompresses that data segment (block 608). - After the
lossless decompression engine 406 returns the decompressed data to theDMA engine 402, theDMA engine 402 reassembles the decompressed data segments into the overall decompressed data stream (block 610). For example, theDMA engine 402 may be reassembling a decompressed video stream. TheDMA engine 402 then stores and/or sends the decompressed data to a memory device and/or a high bandwidth output device 216 (block 612). For example, theDMA engine 402 may store the decompressed data inmemory 208, and/or theDMA engine 402 may send the decompressed data to a display and/or amplifier/speaker. - Each of these steps in
process 600 may be executed in parallel with one or more of the other steps in 500. For example, after compressed data is received, the compressed data may be segmented and decompressed at the same time that new data is being received. Similarly, as decompressed data is produced, the decompressed data may be reassembled and transmitted on the fly at the same time as new data is being received, segmented and decompressed. -
FIG. 7 is a flowchart of another example process for storing data using a direct memory access unit with a lossless coder/decoder (DMA/CODEC). Although theprocess 700 is described with reference to the flowchart illustrated inFIG. 7 , it will be appreciated that many other methods of performing the acts associated withprocess 700 may be used. For example, the order of many of the operations may be changed, and some of the operations described may be optional. - In this example, the
process 700 begins when theDMA engine 402 receives uncompressed data (block 702). For example, theDMA engine 402 may receive uncompressed audio and/or video data. TheDMA engine 402 then sends the uncompressed data to thelossless compression engine 404. Thelossless compression engine 404 compresses the uncompressed data and stores the resulting lossless encoded data as part of a direct memory access write operation via the DMA engine 402 (block 704). -
FIG. 8 is a flowchart of another example process for delivering data using a direct memory access unit with a lossless coder/decoder (DMA/CODEC). Although theprocess 800 is described with reference to the flowchart illustrated inFIG. 8 , it will be appreciated that many other methods of performing the acts associated withprocess 800 may be used. For example, the order of many of the operations may be changed, and some of the operations described may be optional. - In this example, the
process 800 begins when theDMA engine 402 receives compressed data (block 802). For example, theDMA engine 402 may receive compressed audio and/or video data. TheDMA engine 402 then sends the compressed data to thelossless decompression engine 406. Thelossless decompression engine 406 decompresses the compressed data and sends the resulting unencoded data as part of a direct memory access read operation via the DMA engine 402 (block 804). - In summary, persons of ordinary skill in the art will readily appreciate that methods and apparatus for storing and delivering compressed data have been provided. Among other features, electronic devices employing the disclosed direct memory access (DMA) engine with integrated coder/decoder (CODEC) are able to perform large memory transfers where compression and/or decompression are used (e.g., retrieving compressed video from memory and sending the uncompressed version of the video to a graphics processing unit) with minimal intervention from the central processing unit. As a result, the central processing unit is free to perform other task.
- The foregoing description has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the exemplary embodiments disclosed. Many modifications and variations are possible in light of the above teachings. It is intended that the scope of the invention be limited not by this detailed description of examples, but rather by the claims appended hereto.
Claims (31)
1. A method of storing compressed data, the method comprising:
compressing uncompressed data to produce compressed data; and
storing the compressed data, wherein the compressing operation and the storing operation are each part of a direct memory access (DMA) write operation.
2. The method of claim 1 , wherein compressing and storing the compressed data is (a) initiated by a central processing unit (CPU) and (b) performed without further interaction by the central processing unit (CPU).
3. The method of claim 1 , wherein the compressing the uncompressed data to produce compressed data includes compressing the uncompressed data to produce lossless compressed data.
4. The method of claim 1 , further comprising segmenting the uncompressed data and reassembling corresponding compressed data.
5. The method of claim 1 , further comprising sending the compressed data via a communication channel.
6. A method of delivering decompressed data, the method comprising:
receiving compressed data;
decompressing the compressed data to produce decompressed data, wherein the decompressing operation and the receiving operation are each part of a direct memory access (DMA) read operation.
7. The method of claim 6 , wherein decompressing and delivering the decompressed data is initiated by a central processing unit (CPU) and performed without further interaction by the central processing unit (CPU).
8. The method of claim 6 , wherein the decompressing the compressed data to produce decompressed data includes decompressing lossless compressed data to produce decompressed data.
9. The method of claim 6 , further comprising segmenting the compressed data and reassembling corresponding decompressed data.
10. The method of claim 6 , further comprising delivering the decompressed data to an output device
11. The method of claim 10 , wherein delivering the decompressed data to the output device includes sending the decompressed data to display via a graphics processing unit (GPU).
12. An apparatus for storing compressed data, the apparatus comprising:
a direct memory access (DMA) engine structured to perform a direct memory write operation of compressed data; and
a compression engine, operatively coupled to the direct memory access (DMA) engine, wherein the compression engine is structured to produce the compressed data as part of the direct memory write operation.
13. The apparatus of claim 12 , wherein the direct memory access (DMA) engine is structured to (a) cause the compressed data to be produced in response to an initiation by a central processing unit (CPU) and (b) perform the direct memory storage operation without further interaction by the central processing unit (CPU).
14. The apparatus of claim 12 , wherein the compression engine is structured to segment uncompressed data and reassemble corresponding compressed data.
15. The apparatus of claim 12 , wherein the compression engine is structured to send the compressed data via a communication channel.
16. An apparatus for delivering decompressed data, the apparatus comprising:
a direct memory access (DMA) engine structured to perform a direct memory read operation of decompressed data; and
a lossless decompression engine, operatively coupled to the direct memory access (DMA) engine, wherein the lossless decompression engine is structured to produce the decompressed data as part of the direct memory read operation.
17. The apparatus of claim 16 , wherein the direct memory access (DMA) engine is structured to (a) cause the decompressed data to be produced in response to an initiation by a central processing unit (CPU) and (b) perform the direct memory read operation without further interaction by the central processing unit (CPU).
18. The apparatus of claim 16 , wherein the lossless decompression engine is structured to segment the lossless compressed data and reassemble corresponding decompressed data.
19. The apparatus of claim 16 , further comprising a graphics processing unit (GPU) operatively coupled to the direct memory access (DMA), wherein the direct memory access (DMA) engine is structured to send the decompressed data to a display via the graphics processing unit (GPU).
20. A method of storing and delivering data, the method comprising:
receiving uncompressed data;
compressing the uncompressed data to produce lossless compressed data;
storing the lossless compressed data in a memory, wherein the compressing operation and the storing operation are each part of a first direct memory access (DMA) write operation;
reading the lossless compressed data from the memory;
decompressing the lossless compressed data to produce decompressed data, wherein the decompressing operation and the reading operation are each part of a direct memory access (DMA) read operation; and
delivering the decompressed data to an output device.
21. The method of claim 20 , wherein compressing and storing the lossless compressed data is (a) initiated by a central processing unit (CPU) and (b) performed without further interaction by the central processing unit (CPU).
22. The method of claim 21 , wherein decompressing and delivering the decompressed data is (c) initiated by the central processing unit (CPU) and (d) performed without further interaction by the central processing unit (CPU).
23. The method of claim 20 , further comprising segmenting the uncompressed data and reassembling corresponding lossless compressed data.
24. The method of claim 23 , further comprising segmenting the lossless compressed data and reassembling corresponding decompressed data.
25. The method of claim 20 , wherein delivering the decompressed data to an output device includes delivering the decompressed data to a display via a graphic processing unit (GPU).
26. An apparatus for storing and delivering data, the apparatus comprising:
a direct memory access (DMA) engine structured to perform (a) a direct memory write operation of lossless compressed data and (b) a direct memory read operation of decompressed data; and
a lossless compression engine, operatively coupled to the direct memory access (DMA) engine, wherein the lossless compression engine is structured to (c) produce the lossless compressed data as part of the direct memory write operation and (d) produce the decompressed data as part of the direct memory read operation.
27. The apparatus of claim 26 , wherein the direct memory access (DMA) engine is structured to (e) cause the lossless compressed data to be produced in response to a first initiation by a central processing unit (CPU) and (f) perform the direct memory storage operation without further interaction by the central processing unit (CPU).
28. The apparatus of claim 27 , wherein the direct memory access (DMA) engine is structured to (g) cause the decompressed data to be produced in response to a second initiation by a central processing unit (CPU) and (h) perform the direct memory read operation without further interaction by the central processing unit (CPU).
29. The apparatus of claim 26 , wherein the lossless compression engine is structured to segment uncompressed data and reassemble corresponding lossless compressed data.
30. The apparatus of claim 29 , wherein the lossless decompression engine is structured to segment the lossless compressed data and reassemble corresponding decompressed data.
31. The apparatus of claim 26 , further comprising a graphics processing unit (GPU) operatively coupled to the direct memory access (DMA) engine, wherein the direct memory access (DMA) engine is structured to send the decompressed data to a display via the graphics processing unit (GPU).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/282,004 US20140344486A1 (en) | 2013-05-20 | 2014-05-20 | Methods and apparatus for storing and delivering compressed data |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361825249P | 2013-05-20 | 2013-05-20 | |
US14/282,004 US20140344486A1 (en) | 2013-05-20 | 2014-05-20 | Methods and apparatus for storing and delivering compressed data |
Publications (1)
Publication Number | Publication Date |
---|---|
US20140344486A1 true US20140344486A1 (en) | 2014-11-20 |
Family
ID=51895479
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/282,004 Abandoned US20140344486A1 (en) | 2013-05-20 | 2014-05-20 | Methods and apparatus for storing and delivering compressed data |
US14/282,330 Active 2035-09-25 US9686536B2 (en) | 2013-05-20 | 2014-05-20 | Method and apparatus for aggregation and streaming of monitoring data |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/282,330 Active 2035-09-25 US9686536B2 (en) | 2013-05-20 | 2014-05-20 | Method and apparatus for aggregation and streaming of monitoring data |
Country Status (1)
Country | Link |
---|---|
US (2) | US20140344486A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140122854A1 (en) * | 2012-10-25 | 2014-05-01 | Canon Kabushiki Kaisha | Information processing apparatus and activation method therefor |
US20150228106A1 (en) * | 2014-02-13 | 2015-08-13 | Vixs Systems Inc. | Low latency video texture mapping via tight integration of codec engine with 3d graphics engine |
US9116858B1 (en) * | 2014-05-28 | 2015-08-25 | Hitachi, Ltd. | Direct memory access with conversion or reverse conversion of data |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105163064A (en) * | 2015-07-23 | 2015-12-16 | 安徽师范大学 | Embedded network video data acquisition transmission system and method |
US10073137B2 (en) * | 2016-08-02 | 2018-09-11 | Qualcomm Incorporated | Soundwire-based embedded debugging in an electronic device |
Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5768445A (en) * | 1996-09-13 | 1998-06-16 | Silicon Graphics, Inc. | Compression and decompression scheme performed on shared workstation memory by media coprocessor |
US5812873A (en) * | 1994-12-09 | 1998-09-22 | Ricoh Company, Ltd. | Data decoding method and system |
US5889480A (en) * | 1996-10-18 | 1999-03-30 | Samsung Electronics Co., Ltd. | Full duplex serial codec interface with DMA |
US6002814A (en) * | 1998-04-14 | 1999-12-14 | Hewlett-Packard Company | Means and method for configuring a data processing pipeline |
US6292844B1 (en) * | 1998-02-12 | 2001-09-18 | Sony Corporation | Media storage device with embedded data filter for dynamically processing data during read and write operations |
US6373986B1 (en) * | 1998-04-08 | 2002-04-16 | Ncr Corporation | Compression of data transmission by use of prime exponents |
US20030093591A1 (en) * | 2001-11-09 | 2003-05-15 | David Hohl | System and method for fast data transfer to display driver |
US6799232B1 (en) * | 2001-12-05 | 2004-09-28 | Zarlink Semiconductor V.N., Inc. | Automatic byte swap and alignment for descriptor-based direct memory access data transfers |
US6859850B1 (en) * | 1998-01-30 | 2005-02-22 | Stmicroelectronics Limited | Controller for controlling direct memory access |
US20070162649A1 (en) * | 2005-12-22 | 2007-07-12 | Vimicro Corporation | Direct Memory Access Controller |
US7265856B1 (en) * | 2001-03-21 | 2007-09-04 | Lexmark International Inc. | Method and system for receiving and processing multiple compressed print data streams |
US20080204598A1 (en) * | 2006-12-11 | 2008-08-28 | Lance Maurer | Real-time film effects processing for digital video |
US7548586B1 (en) * | 2002-02-04 | 2009-06-16 | Mimar Tibet | Audio and video processing apparatus |
US20090207283A1 (en) * | 2008-02-15 | 2009-08-20 | Fujitsu Microelectronics Limited | Image processing apparatus, imaging apparatus, and image processing method |
US20100250864A1 (en) * | 2007-06-19 | 2010-09-30 | Sony Computer Entertainment Europe Limited | Method And Apparatus For Compressing And Decompressing Data |
US20110075943A1 (en) * | 2009-09-30 | 2011-03-31 | Takahiro Minami | image processing apparatus |
US8166212B2 (en) * | 2007-06-26 | 2012-04-24 | Xerox Corporation | Predictive DMA data transfer |
US20120200559A1 (en) * | 2011-02-09 | 2012-08-09 | Samsung Electronics Co., Ltd. | Graphic processing unit and method for decompressing data |
US8446944B1 (en) * | 2009-04-30 | 2013-05-21 | Verint Video Solutions Inc. | Data processing system and method |
US20130154857A1 (en) * | 2011-12-15 | 2013-06-20 | Kabushiki Kaisha Toshiba | Decoding device and coding method |
US8713214B2 (en) * | 2008-08-04 | 2014-04-29 | Apple Inc. | Media processing method and device |
US8736629B1 (en) * | 2012-11-21 | 2014-05-27 | Ncomputing Inc. | System and method for an efficient display data transfer algorithm over network |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7190738B2 (en) * | 2002-03-07 | 2007-03-13 | Stmicroelectronics, Inc. | Data assisted serial link decoder using oversampling |
US7376418B2 (en) * | 2003-09-08 | 2008-05-20 | Wells Loren L | System and method for multiple access control in satellite communications system |
-
2014
- 2014-05-20 US US14/282,004 patent/US20140344486A1/en not_active Abandoned
- 2014-05-20 US US14/282,330 patent/US9686536B2/en active Active
Patent Citations (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812873A (en) * | 1994-12-09 | 1998-09-22 | Ricoh Company, Ltd. | Data decoding method and system |
US5768445A (en) * | 1996-09-13 | 1998-06-16 | Silicon Graphics, Inc. | Compression and decompression scheme performed on shared workstation memory by media coprocessor |
US5889480A (en) * | 1996-10-18 | 1999-03-30 | Samsung Electronics Co., Ltd. | Full duplex serial codec interface with DMA |
US6859850B1 (en) * | 1998-01-30 | 2005-02-22 | Stmicroelectronics Limited | Controller for controlling direct memory access |
US6292844B1 (en) * | 1998-02-12 | 2001-09-18 | Sony Corporation | Media storage device with embedded data filter for dynamically processing data during read and write operations |
US6373986B1 (en) * | 1998-04-08 | 2002-04-16 | Ncr Corporation | Compression of data transmission by use of prime exponents |
US6002814A (en) * | 1998-04-14 | 1999-12-14 | Hewlett-Packard Company | Means and method for configuring a data processing pipeline |
US7265856B1 (en) * | 2001-03-21 | 2007-09-04 | Lexmark International Inc. | Method and system for receiving and processing multiple compressed print data streams |
US20030093591A1 (en) * | 2001-11-09 | 2003-05-15 | David Hohl | System and method for fast data transfer to display driver |
US6799232B1 (en) * | 2001-12-05 | 2004-09-28 | Zarlink Semiconductor V.N., Inc. | Automatic byte swap and alignment for descriptor-based direct memory access data transfers |
US7548586B1 (en) * | 2002-02-04 | 2009-06-16 | Mimar Tibet | Audio and video processing apparatus |
US20090316798A1 (en) * | 2002-02-04 | 2009-12-24 | Mimar Tibet | Audio and video processing apparatus |
US20070162649A1 (en) * | 2005-12-22 | 2007-07-12 | Vimicro Corporation | Direct Memory Access Controller |
US7685331B2 (en) * | 2005-12-22 | 2010-03-23 | Vimicro Corporation | Direct memory access controller |
US20080204598A1 (en) * | 2006-12-11 | 2008-08-28 | Lance Maurer | Real-time film effects processing for digital video |
US20100250864A1 (en) * | 2007-06-19 | 2010-09-30 | Sony Computer Entertainment Europe Limited | Method And Apparatus For Compressing And Decompressing Data |
US8166212B2 (en) * | 2007-06-26 | 2012-04-24 | Xerox Corporation | Predictive DMA data transfer |
US20090207283A1 (en) * | 2008-02-15 | 2009-08-20 | Fujitsu Microelectronics Limited | Image processing apparatus, imaging apparatus, and image processing method |
US8531538B2 (en) * | 2008-02-15 | 2013-09-10 | Fujitsu Semiconductor Limited | Image processing apparatus, imaging apparatus, and image processing method |
US8713214B2 (en) * | 2008-08-04 | 2014-04-29 | Apple Inc. | Media processing method and device |
US8446944B1 (en) * | 2009-04-30 | 2013-05-21 | Verint Video Solutions Inc. | Data processing system and method |
US20110075943A1 (en) * | 2009-09-30 | 2011-03-31 | Takahiro Minami | image processing apparatus |
US20120200559A1 (en) * | 2011-02-09 | 2012-08-09 | Samsung Electronics Co., Ltd. | Graphic processing unit and method for decompressing data |
US20130154857A1 (en) * | 2011-12-15 | 2013-06-20 | Kabushiki Kaisha Toshiba | Decoding device and coding method |
US8736629B1 (en) * | 2012-11-21 | 2014-05-27 | Ncomputing Inc. | System and method for an efficient display data transfer algorithm over network |
Non-Patent Citations (1)
Title |
---|
Wikipedia's article on 'Direct Memory Access' archived from May 15, 2013. * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140122854A1 (en) * | 2012-10-25 | 2014-05-01 | Canon Kabushiki Kaisha | Information processing apparatus and activation method therefor |
US9904559B2 (en) * | 2012-10-25 | 2018-02-27 | Canon Kabushiki Kaisha | Information processing apparatus and activation method therefor for processing data of a hibernation image |
US20150228106A1 (en) * | 2014-02-13 | 2015-08-13 | Vixs Systems Inc. | Low latency video texture mapping via tight integration of codec engine with 3d graphics engine |
US9116858B1 (en) * | 2014-05-28 | 2015-08-25 | Hitachi, Ltd. | Direct memory access with conversion or reverse conversion of data |
US9667697B2 (en) | 2014-05-28 | 2017-05-30 | Hitachi, Ltd. | Direct memory access with conversion or reverse conversion of data |
Also Published As
Publication number | Publication date |
---|---|
US9686536B2 (en) | 2017-06-20 |
US20140340527A1 (en) | 2014-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140344486A1 (en) | Methods and apparatus for storing and delivering compressed data | |
US8767820B2 (en) | Adaptive display compression for wireless transmission of rendered pixel data | |
CN102158553B (en) | Method and device for playing multi-media files for remote desktop | |
US10516591B2 (en) | Generating playback configurations based on aggregated crowd-sourced statistics | |
CN106776677B (en) | File conversion method, device and file transmission system | |
US10264053B2 (en) | Method, apparatus, and system for data transmission between multiple devices | |
CN110809189B (en) | Video playing method and device, electronic equipment and computer readable medium | |
US20240045641A1 (en) | Screen sharing display method and apparatus, device, and storage medium | |
WO2014089114A1 (en) | Distributed cross-platform user interface and application projection | |
US11540028B2 (en) | Information presenting method, terminal device, server and system | |
US8736617B2 (en) | Hybrid graphic display | |
WO2016036504A2 (en) | Streaming video data in the graphics domain | |
US9166633B2 (en) | Systems and methods for interfacing a white space device with a host device | |
WO2021136011A1 (en) | Display method and device | |
CN111478916B (en) | Data transmission method, device and storage medium based on video stream | |
CN102821309A (en) | System and method for transferring streaming media based on desktop sharing | |
US10249269B2 (en) | System on chip devices and operating methods thereof | |
WO2020073777A1 (en) | Media processing method and apparatus | |
US20210099671A1 (en) | System and Method for Redirecting Audio and Video Data Streams in a Display-Server Computing System | |
CN107872683B (en) | Video data processing method, device, equipment and storage medium | |
CN113766266B (en) | Audio and video processing method, device, equipment and storage medium | |
CN103167345A (en) | System and method for enabling audio and video to be transmitted to mobile phone to conduct real-time output playing based on Bluetooth | |
CN104219537A (en) | Video data processing method, device and system | |
US10021161B2 (en) | Compression of graphical commands for remote display | |
US20170111285A1 (en) | Methods and apparatus for random access of hevc bitstream for mmt |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ADVANCED MICRO DEVICES, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WU, WINTHROP;NUSSBAUM, SEBASTIEN;SIGNING DATES FROM 20140415 TO 20140429;REEL/FRAME:032928/0625 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |