FORM 2
THE PATENTS ACT, 1970
(39 of 1970)
&
THE PATENTS RULES, 2003
COMPLETE SPECIFICATION
(See section 10, rule 13)
1. Title of the invention: DATA PROCESSING
2. Applicant(s)
NAME NATIONALITY ADDRESS
TATA CONSULTANCY INDIAN Nirmal Building, 9th Floor, Nariman Point,
SERVICES LIMITED Mumbai, Maharashtra 400021, India
3. Preamble to the description
COMPLETE SPECIFICATION
The following specification particularly describes the invention and the manner in which it
is to be performed.
TECHNICAL FIELD
[0001] The present invention relates, in general, to data processing and, in particular, but not exclusively, to methods of data compression and data encoding.
BACKGROUND
[0002] A number of applications that require accessing, storing and processing large amounts of data are designed to transmit data over a network. One such application is surveillance. Such an application typically requires capturing of data by a data processing and transmitting (DPT) device for a long duration. Typically, the DPT device may be a smart phone, a personal digital assistance capable of capturing audio/video data, and the like.
[0003] Generally, the captured data is bulky in terms of size and requires high bandwidth for transmission. Therefore, the captured data is usually compressed to reduce the size and utilize a reduced bandwidth for transmission. The captured data is first sampled and then the sampled data is compressed using any standard compression technique, such as MPEG, and H.264.
[0004] The compressed data is also encoded so that any error introduced during transmission of data could be detected and original data could be obtained. The encoding is performed using standard error control codes, such as Reed Solomon Codes. The encoded data is then transmitted over a network to the receiver, such as a remote central server. The receiver then decodes and decompresses the data to obtain the original data by performing the inverse operation. The processing of data including compression and encoding typically involves heavy and complex computations at the sensor side.
SUMMARY
[0005] This summary is provided to introduce concepts related to data processing, which are further described below in the detailed description. Data is acquired by a data processing and transmission device. The acquired data is compressed using compressive sensing technique to generate a compressed data by compressively sampling the acquired data. The compressed data is then encoded using real field codes encoding technique to generate an encoded data. Thus, the data processing is achieved by combined use of compressive sensing
technique for compressing the acquired data and real field codes encoding technique for encoding the compressed data. This summary is not intended to identify essential features of the claimed subject matter nor is it intended for use in determining or limiting the scope of the claimed subject matter.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The same numbers are used throughout the drawings to reference like features and components.
[0007] Fig. 1 illustrates a network environment for data processing and transmission, in accordance with an embodiment of the present subject matter.
[0008] Fig. 2(a) illustrates system(s) for data communication in a network, in accordance with an implementation of the present subject matter.
[0009] Fig. 2(b), 2(c), 2(d), 2(e), 2(f), 2(g) and 2(f) depict an example of the data processing, in accordance with an embodiment of the present subject matter.
[0010] Fig. 3 illustrates a method of data processing and transmission over a network using compressive sensing technique and real field codes encoding technique, in accordance with an implementation of the present subject matter.
[0011] Fig. 4 illustrates a method of receiving an encoded data transmitted over a network, and processing the encoded data to obtain an original data, in accordance with an implementation of the present subject matter.
DETAILED DESCRIPTION
[0012] The subject matter described herein relates to data processing and providing efficient and reliable method for transmission of bulky data requiring high bandwidth, such as surveillance data. The system(s) and method(s) described herein can be implemented on a
variety of devices, such as a server, a desktop computer, a notebook or a portable computer, a mainframe computer, a mobile computing device, and the like.
[0013] Technological revolution has now enabled the use of devices, such as smart phones to capture, process, and transmit data over communication networks. The advancement in capability of such devices, hereinafter referred to as data processing and transmitting (DPT) devices, has also enabled them to transmit bulky data requiring high bandwidth, for various applications, such as surveillance.
[0014] With the recent advancements in technology, although, the DPT devices possess increased computational capabilities and communication capabilities, however, the DPT device suffers from inherent limited battery power. Thus, increased computation required to process data directly increases the power consumption of the DPT device. Hence, the use of standard methods of compressing and encoding data that involves a large number of computations utilize a considerable amount of power from these DPT devices. Further, the use of standard encoding techniques necessitate particular hardware and/software in the DPT device such that original data can be reconstructed easily.
[0015] According to an implementation of the present subject matter, systems and methods for data processing are described. Although the present subject matter has been explained with respect to data processing and transmission bulky data, such as surveillance data, over a network, it would be understood that the system(s) and method(s) described herein can be implemented for various other applications to reduce the number of computations required for compressing and encoding of data to be transmitted. Examples of DPT devices that can implement the described method(s) include, but are not limited to, desktop computers, hand-held devices, laptops or other portable computers, mobile phones, and the like. Further, examples of applications that may implement the described methods for data processing include, but are not limited to, recording and transmitting of audio-visual presentation, teleconferencing, remote diagnosis of machines, remote medical emergency assistance, and so on where the data is captured for long duration and requires high bandwidth for transmission over a network.
[0016] In one implementation, the use of a compression technique and an encoding technique is described. According to the present subject matter, compressive sensing technique may be used as the compression technique for the DPT device to generate a compressed data.
[0017] Compressive sensing (also referred to as compressive sampling and compressed sensing) is a technique for acquiring a signal based on the property of the signal, such as sparse or compressible. According to Nyquist-Shannon sampling theorem for sampling signals, a signal can be exactly reconstructed if the signal has been sampled at a minimum of twice its maximum frequency, which is also defined as the Nyquist rate. However, in compressive sensing technique, a signal is sampled at a rate lower than the Nyquist rate. Sampling the signal at a lower sampling rate provides less samples when compared to sampling of the signal done at rates equal to or greater than the Nyquist rate. Thus, the compressive sensing takes a few samples of the signal and compresses the sample signals. Thereby, reducing the number of computations required for compressing the fewer samples as compared to the number of computations required by standard compression techniques, which samples the signal at Nyquist rate and generates more samples.
[0018] According to the present subject matter, the compressed data may then be encoded using real field codes encoding technique to generate an encoded data.
[0019] Real field codes encoding technique is based on the use of real field codes as error control codes. In real field codes encoding technique, a block vector of sampled data is encoded using a Ramanujan graph, which is constructed using a Projective Geometry (PG). The encoded data is generated by adding simple parity codes to the sampled data. The real field codes encoding technique uses addition and subtraction operations to generate the encoded data in comparison to the multiplication and accumulation operations performed by the standard encoding techniques. Thus, the number of computations required for encoding the data are greatly reduced by the use of real field codes encoding technique. In one implementation, the encoded data may then be transmitted over a network.
[0020] Thus, as mentioned before, the use of compressed sensing technique allows fewer computations when compared to the conventionally known compression techniques to
compress the obtained data. Further, the use of real field codes encoding technique also reduces the number of computations performed by the DPT device. Therefore, the combined use of the compressed sensing technique and the real field codes requires greatly reduced computations. The lower computations reduce the power consumption required for performing the computations at the DPT device. Further, the combined use of compressed sensing technique and the real field codes generates an output data with an increased Peak Signal to Noise Ratio (PSNR). It would be understood by those skilled in the art that an increased PSNR of the data may allow a better quality reconstruction at the receiver.
[0021] The manner in which the systems and methods for data processing and transmission over a network is implemented shall be explained in details with respect to the Figures 1 -3. While aspects of described systems and methods for data processing can be implemented in any number of different computing systems, environments, and/or configurations, the embodiments are described in the context of the following exemplary system(s).
[0022] Fig. 1 illustrates a network environment 100 for data processing and transmission, according to an embodiment of the present subject matter. The network environment 100 may be used for a broad range of voice and data related applications, such as surveillance, recording and transmitting audio-visual presentation, teleconferencing, and so on.
[0023] The network environment 100 includes the multiple DPT devices 102-1, 102-2, 102-3,..., 102-N. Examples of DPT device 102 may include, but are not limited to, systems capable of data processing and transmission, such as mobile phones, smart phones, personal digital assistances, and laptops. For the purpose of explanation and clarity, the DPT device
102-1, 102-2, 102-3, , 102-N, are collectively referred to as DPT device(s) 102. In one
implementation, the DPT device 102 is configured to capture the data, processes the data, and transmit the processed data in the form of encoded data to one or more receivers 104-1, 104-2.... 104-N, via a network 106.
[0024] In one implementation of the present subject matter, the DPT device 102 may also include a combination of devices capable of obtaining data by capturing image or video and thereafter processing the data to transmit it over the network. One such combination may be
video camera communicatively coupled with hardware or software interface to process the captured data before the data is transmitted over the network 106. The interface may be coupled externally to the DPT device 102.
[0025] The receivers 104-1, 104-2.... 104-N may be any computing system capable of receiving the encoded data transmitted by a DPT device 102 over the communication network. Examples of such receivers 104 may include, but are not limited to, a remote server, a smart phone, personal digital assistance and so on. For the sake of better understanding, the receivers 104-1, 104-2.... 104-N, are hereinafter collectively referred to as receiver(s) 104. The receiver 104 receives the encoded data via the network 106, processes the encoded data and reconstructs original data.
[0026] In one implementation, apart from surveillance, the DPT device 102 could be used for variety of applications, such as recording and transmitting audio-visual presentation to a central server such that the presentation may be broadcasted in real time. Another application could be monitoring students in an examination hall using a number of smart phones. Yet another application could be reporting a live event using smart phone by a citizen journalist.
[0027] In yet another implementation, the DPT device 102 could be used for wireless network applications, such as remote diagnosis of machines or vehicles. A user may use DPT device to stream the damaged parts of a machines or vehicles to a remote service personnel based on real-time instruction for remote diagnosis. In another application, the DPT device may be used for remote medical emergency assistance. A doctor may help a patient remotely from an emergency situation through a patient's or attendant's smart phone with real time video surveillance.
[0028] In one implementation, only one DPT device 102 may be transmitting the encoded data over the network 106. In one another implementation, a plurality of DPT devices 102 may transmit the encoded data over the network 106. Example of such an implementation may be monitoring of students in an examination hall using a number of smart phones.
[0029] The network 106 may be a wireless network, a wired network, or a
combination thereof. The network 106 can also be an individual network or a collection of many such individual networks, interconnected with each other and functioning as a single large network, e.g., the Internet or an intranet. The network 106 can be implemented as one of the different types of networks, such as intranet, local area network (LAN), wide area network (WAN), the internet, and such. The network 106 may either be a dedicated network or a shared network, which represents an association of the different types of networks that use a variety of protocols, for example, Hypertext Transfer Protocol (HTTP), Transmission Control Protocol/Internet Protocol (TCP/IP), Wireless Application Protocol (WAP), etc., to communicate with each other.
[0030] Additionally, the method can be implemented in any of the network 106, such
as Global System for Mobile Communication (GSM) network, Universal Mobile Telecommunications System (UMTS) network, Personal Communications Service (PCS) network, Time Division Multiple Access (TDMA) network, Code Division Multiple Access (CDMA) network, Next Generation Network (NGN), and IP-based network, Public Switched Telephone Network (PSTN), and Integrated Services Digital Network (ISDN). Although the description herein is with reference to certain networks, the systems and methods may be implemented in other networks and devices, albeit with a few variations, as will be understood by a person skilled in the art.
[0031] Typically, for surveillance purpose, the DPT device 102 captures, stores and
processes the captured data. Since the duration of data capture is generally long, the data captured becomes bulky. The data captured by the DPT device 102 may either be a video data, an audio data, or a combination thereof. The data may comprise of 2D, 3D or 4D formats. The DPT device 102 captures and compressively samples the data using compressive sensing module 108. The compressive sensing module 108 may include a sensing matrix. The sensing matrix may be based on a random matrix, such as Gaussian random matrix and a Bernoulli random matrix. The sensing matrix may also be based on a deterministic matrix, such as partial Fourier matrix and Chirp sensing codes. In one implementation, the sensing matrix selected for performing compressive sensing, satisfies various properties, such as Restricted Isometry Property. The compressive sensing module
108 provides linear, non adaptive measurements of the data that form the compressed representation of the data. As the data is compressed while being captured, the large number of computations required are greatly reduced, which in turn reduce the power consumption of the DPT device 102.
[0032] The compressed data is then encoded to protect the compressed data from
errors during transmission over the network 106. In one implementation, the real field codes encoding module 110 is configured to encode the compressed data. In said implementation, the real field codes encoding module 110 comprises of real field codes encoding algorithm based on projective geometry. The real field codes encoding module 110 uses samples of compressed data to generate redundant symbols (also in real field) using addition and subtraction operations based on the bipartite graph constructed using the projective geometry. These redundant symbols are the representation of the encoded data. The real field codes encoding module 110 employs addition and subtraction operations and may not involve other complex operations to generate the encoded data as opposed to the standard encoding techniques. The standard encoding techniques employ multiplication and accumulate (MAC) operations to generate the encoded data. Thus, the number of computations in performing MAC operation is greatly reduced due to the use of real field codes encoding module. Thereby, reducing the power consumption of DPT device 102. In one implementation, the encoded data is then transmitted to the receiver 104 via the network 106.
[0033] Fig. 2(a) illustrates system(s) of data communication, implementing a data
compression technique using compressive sensing module 108 and data encoding technique using real field codes encoding module 110, according to an embodiment of the present subject matter. In accordance with afore-mentioned description, the DPT device 102 and the receiver 104 are communicatively coupled to each other for the purposes of transmitting and receiving the compressed and encoded data. The communication may be based on any of the standard network protocol.
[0034] The DPT device 102 and the receiver 104 include processors 202-1, 202-2,
collectively referred to as processor 202. The processor 202 can be a single processing unit or a number of units, all of which could include multiple computing units. The processor 202
may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions. Among other capabilities, the processor(s) is configured to fetch and execute computer-readable instructions stored in the memory.
[0035] The DPT device 102 and the receiver 104 include interface(s) 204-1, 204-2,
collectively referred to as interfaces 204. The interfaces 204 may include a variety of software and hardware interfaces that allow the DPT device 102 and the receiver 104 to interact with each other. Further, the interfaces 204 may enable the DPT device 102 and the receiver 104 to communicate with other communication and computing devices, such as web servers and external repositories. The interfaces 204 may facilitate communications within the wireless networks, for example, WLAN, cellular, satellite-based network, etc. The DPT device 102 and the receiver 104 include memory 206-1, 206-2, collectively referred to as memory 206, coupled to the processors 202-1, 202-2, respectively. The memory 206 may include any computer-readable medium known in the art including, for example, volatile memory (e.g., RAM), and/or non-volatile memory (e.g., EPROM, flash memory, etc.).
[0036] The memory 206-1, 206-2 of the DPT device 102 and the receiver 104,
respectively, includes modules 208-1, 208-2 and data 210-1, 210-2, collectively referred to as modules 208 and data 210, respectively. The modules 208 include routines, programs, objects, components, data structures, and the like, which perform particular tasks or implement particular abstract data types. The modules 208 further include modules that supplement applications on the DPT device 102 and the receiver 104, for example, modules of an operating system. The data 210 serves, amongst other things, as a repository for storing data that may be fetched, processed, received, or generated by one or more of the modules 208.
[0037] In an implementation, the modules 208-1 of the DPT device 102 includes an image capturing module 212, the compressive sensing module 108, the real field codes encoding module 110, a transmission module 214 and other module(s) 216. In an implementation, the data 210-1 of the DPT device 102 includes acquired compressed data
218, encoded data 220 and other data 222. The other module(s) 216 may include programs or coded instructions that supplement applications and functions, for example, programs in the operating system of the DPT device 102, and similarly, the other data 222 comprise data corresponding to one or more other module(s) 216.
[0038] In another implementation, modules 208-1 of the DPT device 102, such as a camera includes image capturing module 212 for capturing data, processor 202, memory 206 for storing of data and interface 204. In the said implementation, a processing device may include the compressive sensing module 108, the real field codes encoding module 110, and the transmission module 214. The processing device may be a hardware or a software communicatively coupled with the DPT device 102 through the interface 204. The processing device may be coupled externally to the DPT device 102. In said implementation, the image capturing module 212 interacts with the interface 204 to transfer the data to the processing device for compression, encoding and subsequently transmission of data.
[0039] Similarly, in an implementation, the modules 208-2 of the receiver 104 includes an information receiving module 224, a real field codes decoding module 226, a decompression module 228 and other module(s) 230. In an implementation, the data 210-2 of the receiver 104 includes decoded data 232, decompressed data 234, and other data 236. The other module(s) 230 may include programs or coded instructions that supplement applications and functions, for example, programs in the operating system of the receiver 104, and the other data 236 comprise data corresponding to one or more other module(s) 230.
[0040] In one implementation, the DPT device 102 captures a data through the image capturing module 212. The data could be a video content being recorded through the sensor of the DPT device 102 over a long duration. Such data becomes bulky in size and requires high bandwidth for transmission. One such example is the data captured during surveillance. Other examples include data captured during teleconferencing, audio-visual presentation, remote medical emergency assistance, and so on.
[0041] The present subject matter will be described with respect to the data captured during surveillance using a smart phone as a DPT device 102 for the sake of clarity. The
present subject matter, however, may be applied to any video data that needs to be compressed before transmitting over the network 106.
[0042] The DPT device 102 acquires the samples of the data at a rate greatly lower than the Nyquist rate. In one implementation, the DPT 102 device acquires fewer samples of the data captured during the surveillance. The compressive sensing module 108 is configured to compress the acquired samples of data. For this purpose, the compressive sensing module 108, compressively samples the data using sensing waveforms of a sensing matrix to generate a compressed data. In one implementation, compressive sensing is performed by taking the projection of the sampled data vector on a column space of the sensing matrix. In said implementation, the sensing matrix is based on a random sensing matrix and, the data is sampled at random time intervals. These samples along with the time stamps form the compressed data. In such process, the compressive sensing module 108 directly acquires the compressed data without the need for first sampling the data at very high rate and storing the entire set of samples. Thus, fewer amounts of data are captured and compressed thereby reducing the power consumption of the DPT device 102.
[0043] As would be understood by those skilled in the art, the use of compressive sensing technique requires low complexity operations at the compression side. The computation complexity of the compressive sensing technique is of the order of N, where N is the size of the image. Further, the compressive sensing technique uses only few samples of the data to generate a compressed data. Thus, the DPT device 102 performs far less computation to compress the data when compared to the number of computations required in other standard compression techniques, such as MPEG and mp3. The reduced number of computations also helps in reducing the power consumption at the DPT device 102.
[0044] The real field codes encoding module 110 is configured to encode the compressed data. In one implementation, the real field codes encoding module 110 may be based on real number erasure correction cycle expander codes. As would be understood by those skilled in the art, the expander codes are parameterized by a fixed size linear code with a small block length known as component codes and by a family of expander graphs with constant degree. In one embodiment of the implementation, the component codes of the real number erasure
correction cycle expander codes may be based on simple parity-based codes over the real field. In one implementation, the real field codes encoding module 110 encodes a block vector of sampled data using a Ramanujan graph constructed using the Projective Geometry (PG).
[0045] The real field codes encoding module 110, performs the encoding in the following way as described. In one implementation, a point-hyperplane incidence matricx of Projective Geometry of dimension n and a binary Finite field (denoted as PG(n,2)) are used to construct the bipartite Ramanujan graph. In an example, a projective plane PG(2,2) having dimension as 2 and a binary Finite field size as 2 is considered for constructing the bipartite Ramanujan graph. Thus, the point-hyperplane incidence matrix M for the bipartite Ramanujan graph will include 7 points and 7 hyperplanes such that there are 7 rows corresponding to 7 points and 7 columns corresponding to the 7 hyperplanes. The incidence matrix M is represented as below:
The real field codes encoding module 110 constructs a corresponding bipartite Ramanujan graph from the generated incidence matrix such that the total numbers of nodes are equal to the total number of rows and columns in the incidence matrix. As would be understood by those skilled in the art, the bipartite Ramanujan graph comprises of 14 nodes numbered 0 to 13 divided in two halves. The nodes numbered 0 to 6 that correspond to the number of rows are placed on the upper half of the graph. The nodes numbered 7-13 that correspond to the number of columns are placed on the lower half of the graph. The nodes in the upper half and
the lower half of the graph are connected according point-hyperplane incidence relation present in the incidence matrix.
[0046] After constructing the bipartite Ramanujan graph, the real field codes encoding module 110 performs the encoding in the following described steps. In the first step of encoding, a complementary spanning tree of the Ramanujan graph is determined by the real field codes encoding module 110. In the above example, a complementary spanning tree is computed from the bipartite Ramanunjan graph, which was drawn from the incidence matrix.
[0047] In the second step of encoding, an edge-vertex incidence graph of the bipartite Ramanujan graph, is obtained by the real field codes encoding module 110. As would be understood by those skilled in the art, the edge-vertex incidence graph includes nodes placed at upper and lower halves of the graph. The nodes on upper half of the edge-vertex incidence graph are called as variable nodes. The variable nodes contain both sampled data and parity data. The variable nodes corresponding to the edges in the complementary tree graph are associated with data. The variable nodes corresponding to the edges outside the complementary tree graph are associated with parity data. The parity data is computed in the next step. The nodes on the lower upper half of the edge-vertex incidence graph are called as constraint nodes. Each constraint node dictates a condition that the variable nodes connected to a constraint node should satisfy. The condition depends on a component code based on a simple parity code. In the last step, the real field codes encoding module 110 computes the parity data by iterating over the edge-vertex incidence graph such that the sum of the values of all the variable nodes connected to each constraint node should be zero. This condition is owing to the simple parity codes used as the component codes. Thus, at the end of the process the data is encoded by adding the parity data.
[0048] In the example, as described above, the edge-vertex incidence matrix will be generated by the real field codes encoding module 110 having 21 nodes on the upper half of the graph and 14 nodes on the lower half of the graph. Each of the 21 nodes on the upper half of the graph corresponds to an edge of the bipartite Ramanujan graph generated from the incidence matrix. The 21 nodes numbered 0 to 20 are called as the variable nodes. The 14 nodes numbered 0 to 14 are called as the constraint nodes. The edges in the complementary
spanning tree of the graph, generated at the first step, are represented by the variable nodes numbered 4, 5, 7, 8, 10, 11, 16, and 17. The data is placed at these variable nodes. The parity data is placed at the remaining node. The parity data at each node is computed such that sum of all the values connected to each constraint node should be zero. For example, the parity data at node 3 will be (-1) * (value of node 4 + value of node 5). This process of computing parity data is repeated until the parity data at all remaining nodes is computed. Thus, at the end of the process the data is encoded by adding the parity data.
[0049] The use of real field codes encoding technique facilitates reduced complexity encoding, as the mathematical operations used for encoding are addition and subtraction, to generate the encoded data as opposed to the standard encoding techniques. The standard encoding techniques employ multiplication and accumulate (MAC) operations to generate the encoded data. Thus, the number of computations in performing MAC operation is greatly reduced due to the use of real field codes encoding module. Thus, the real field codes encoding technique is computationally efficient than the standard encoding technique. Further, the use of addition and subtraction operation eliminates errors in representing the redundant parity data generated by the parity check matrix, and also the errors involved in representing the encoded data comprising of compressed data and parity data.
[0050] Further, the compressed data is represented as linear, non-adaptive measurements that are real or complex numbers. Therefore, the implementation of real field codes encoding technique to the data compressed using compressive sensing technique is easier. In one implementation of the present subject matter, the real field codes encoding module 110 encodes the data independently from the network 106 requirement, i.e., the method of encoding the data may be independent of the protocol implemented by the network 106. Thus, the real field codes encoding module 110 can be used in tandem with any transmission protocol implemented in the network 106 and thereby eliminating the need for change of any hardware in the DPT device 102 for the transmission of the data. In said implementation, the transmission module 214 may transmit the encoded data over the network 106.
[0051] For the purpose of explanation, the computation complexity of the standard compression techniques, such as JPEG and compressive sensing technique along with their
encoding techniques are briefly described here. For the purpose of explanation, an image of size 128 * 128 is considered for the comparison.
[0052] It would be understood by those skilled in the art that the computational complexity of JPEG compression technique is of the order of N log(N) where N denotes signal dimension. Hence, for an image of size 128 * 128, the number of mathematical operations performed by JPEG compression technique is 1,58,991 (approximately). Typically, JPEG compression technique achieves compression ratio of 20:1 and provides 3277 samples. As an illustration, the number of samples is denoted as k. Typically, a standard encoding technique, such as RS code is used to encode the compressed data samples. It would be apparent to a person skilled in the art that an (n.k) RS code will addh=n-k samples to produce n samples and the corresponding computational complexity for encoding is of the order of h*k. Assuming usual redundancy level of 5% in the RS codes, i.e., h= 164' the number of operations required for the encoding are 5,37,428. Thus, total number of operations performed for compressing and encoding the data are 6,96,419.
[0053] For the purpose of explanation, noiselets are used as sensing matrix for compressive sensing. It is known in the art that the computational complexity for the compressed sensing is of the order of N, where N is the size of the received data. Thus for the image size of 128 * 128, the number of operations required for compression by the compressive sensing technique is 16384. Typically, the compression achieved by compressive sensing technique is around 40% and therefore, 6554 samples would be obtained for the image size of 128 * 128. It would be appreciated that the computational complexity of real field codes is similar to low density parity check (LDPC) codes, which is of the order of k+h. Assuming 5% redundancy (i.e., h=328) as above, this computational complexity of real field codes results in 6882 operations. Therefore, total number of operations performed for compressing and encoding the data are roughly 23266.
[0054] From the above described computation complexity, the reduction in the number of computations achieved by using compressive sensing technique and real field codes is around 90%. Practically, the parameters may vary according to the scenario and the reduction may be 70% to 90%.
[0055] Mathematically, the reduction in the complexity achieved by compressive sensing technique over JPEG is computed as ((N * log(N)) - N)/(N* log(N) and the reduction in the computations achieved by real field codes over RS codes is computed as ((h*k)-(h+k))/(h*k). Further, the number of operations performed by RS codes for decoding the encoded data is of the order of k , whereas the number of operations performed by real field codes for decoding the encoded data is of the order of k+h which is comparatively much less.
[0056] Moreover, the real field codes need not require any support for the finite field operations and thus save more computations. For the purpose of explanation, the arithmetic computations required for finite field codes are performed over Galois field. For a power of prime number q = p", a finite field with q elements is explicitly constructed by choosing the appropriate characteristic polynomial. The addition and multiplication operations are also performed with the help of the polynomial and thereby adding more amount of complexity. On the other hand, the arithmetic computations required for real field codes are performed with the normal arithmetic of real numbers.
[0057] In an implementation, at the receiver 104, the information receiving module 224 is configured to receive the encoded data transmitted by the DPT device 102. The real field codes decoding module 226 is configured to decode the received encoded data. Further, the decompression module 228 may decompress the decoded data for reconstructing original data. In one implementation, the decompression module 228 may use the li-minimization algorithm, also known as basis pursuit. In yet another implementation, the decompression module 228 may use greedy basis pursuit algorithm for reconstructing original data from the decoded data.
[0058] In one embodiment of the present subject matter, the data transmission can be made more reliable such that the compression and encoding of data is adapted to network conditions by using a feedback from receiver 104 to DPT device 102. In the embodiment of the implementation, the receiver 104 may estimate and send a feedback in the form of an erasure probability signal, or a bit error ratio (BER) signal to the DPT device 102. Upon receiving the feedback signal, the DPT device 102 may appropriately change the level of redundancy added by the real field codes encoding module 110 and/or number of linear, non-
adaptive measurements acquired by compressive sensing module 108. In one example, if the erasure probability or BER signal is higher, the DPT device 102 may increase the level of redundancy added by the real field codes encoding module 110. In yet another example, the DPT device 102 may vary the number of measurements linear, non-adaptive measurements acquired by compressive sensing module 108.
[0059] Further, the combined use of compressive sensing technique and real field codes encoding technique produces better results when compared to standard compression and encoding techniques. According to a test result, the compressive sensing technique compresses the data by taking 45% of samples. The real field codes encoding technique adds parity samples and thus generating a total of 52% samples. With the combined implementation of these techniques, the BER estimated at the receiving end for the transmitted data was 10" . The peak signal to noise ratio (PSNR) was found to be 78.223 dB.
[0060] An example in accordance with one embodiment of the present subject matter is explained below to present the synergy effect of combined use of compressive sensing and real field codes encoding techniques.
[0061] For the sake of simplicity, one dimensional data is considered as the original data or signal (hereinafter referred to as data) captured by the image capturing module 212 of the DPT device 102. In the embodiment, the original data is represented as a data vector x of dimension 256 x 1 with sparsity level of s = 5. The sparsity level indicates that there are five non-zero values in the data vector x. In another embodiment, the combined use of compressive sensing and real field codes encoding technique can be applied to data that can be well approximated with sparsity level s having strongest coefficients. For ease of explanation, the non-zero values of the data vector x are chosen to be +1 or -1 and their locations are chosen randomly. Fig. 2(b) illustrates the data vector x representing the original data 238. The encoding and reconstruction of the original data is described in the following steps.
[0062] In the first step, the compressive sensing module 108 compressively samples the original data 238 by taking its projections on the columns of a sensing matrix. In the present embodiment, the sensing matrix is a random sensing matrix. The entries of the random
sensing matrix are chosen according to Gaussian distribution with zero mean and unity variance. In this example, the dimension of the data is 256. Thus, as explained before, the number of measurements for the random sensing matrix is taken as 76. The compression ratio of 3.37:1 is obtained for the original data. Fig. 2(c) shows a compressed data 240 generated using compressive sensing with random Gaussian sensing matrix and a compression ratio of 3:1 by the compressive sensing module 108.
[0063] In the second step, the real field codes encoding module 110 may encode the compressed data 240. In said embodiment, the real field codes encoding module 110 may be based on a real field expander code. In this example, the expander graph is obtained using a Projective Geometry of dimension 1 as 3 and a binary finite field size q as 2. As has been explained earlier, the real field codes encoding module 110 generates an erasure code such that the total number of coded symbols N is 105 and the number of data symbols K is 76. Thus, the code rate is computed as K/N resulting in 0.72 and the number of redundant symbols is computed as N - K resulting in 29. These 29 symbols are computed using simple addition and subtraction operations. Fig. 2(d) shows an encoded data 242 with total N = 105 samples.
[0064] In the third step, the encoded data 242 is transmitted over a wireless channel to the receiver 104. The information receiving module 224 at the receiver 104 receives the encoded data. In one embodiment, the wireless channel is modeled as an erasure channel. In this example, the probability of a sample being erased is taken as 0.2. Fig. 2(e) depicts the transmitted encoded data 242 as solid lines and the received encoded data 244 as dotted lines. The overlapping of the received encoded data 244 as dotted lines and the transmitted encoded data 242 as solid lines depict that the samples have been correctly received by the information receiving module 224 at the receiver 104. The circles at the zeros and near the zeros depict that the samples have been erased while transmission.
[0065] Further, the real field codes decoding module 226 decodes the received encoded data. In this example, the real field codes decoding module 226 uses real expander codes for decoding the encoded data 242. Fig. 2(f) shows the decoded data 246 as dotted lines along with the original encoded data 242 as solid lines and erased data 248. The overlapping of
decoded data 246 as dotted lines and the original encoded data 242 as solid lines depicts the samples that are successfully decoded. As can be seen from the figure, at most locations like 1,9, 11, 72, and 92, the real field codes decoding module 226 has successfully corrected the erasures. Further, as can be observed from the figure, the dark circles at zero represent the erased data while overlapping of decoded data 246 as dotted lines and the original data 242 as solid lines represent the encoded data at these locations.
[0066] Fig. 2(f) further depicts that all the erasures are not corrected by the real field codes decoding module 226. As can be seen from the figure, at locations 53, 56, 59, and 62, the light circles at zero represent the decoded data that depict the discrepancy with the original encoded data 242. Thus, the real expander codes, used for coding and decoding in accordance with the present embodiment, allows for partial recovery in comparison to the standard coding and decoding techniques. Conventionally, if a traditional decoding module cannot correct all the erasures generated by the standard coding techniques such as Reed-Solomon codes, then the entire block of encoded data may discarded.
[0067] In a next step, the redundant symbols are removed from the entire decoded data by real field codes decoding module 226 to generate the original compressed data 240. The generated original compressed data 240 is the data compressively acquired data by the compressive sensing module 108. Fig. 2(g) depicts the original compressed data 240 represented by solid lines and decoded data 246 represented by dotted lines. As can be seen from the figure, the original compressed data 240 represented by solid lines and decoded data 246 represented by dotted lines are overlapping. Fig. 2(g) further depicts that some of the measurements cannot be recovered. As can be seen from the figure, unrecovered data is depicted by the circles at zero.
[0068] Further, the decoded data 246 is decompressed by the decompression module 228. In one embodiment, the decompression is performed using 11-norm minimization. Thus, as explained above, the compression of data performed using compressive sensing technique can tolerate loss of few compressed measurements and may still successfully recover the original data as compared to the standard compression and decompression technique. Conventionally, all the samples of data compressed using standard compression techniques
such as JPEG would be available at the receiver for successful decompression. Fig. 2(h) shows the original sparse data 238 and the data obtained after performing decompression 250 depicting the successful recovered original data.
[0069] Thus, as explained above, the real field codes encoding technique is computationally efficient than the standard encoding techniques such as Reed-Solomon. Also, the use of compressive sensing technique for compressing allows for partial recovery of data. Further, the compressive sensing technique provides significant reduction in computations over standard compression techniques such as JPEG. Furthermore, the compressive sensing technique possesses the feature of tolerating the loss of few measurements. And hence, the combined implementation of the compressive sensing technique and the real field codes encoding technique reduce the overall complexity of the system.
[0070] Fig. 3 illustrates an exemplary method 300 for transmission of data over a network using compressive sensing technique and real field codes encoding technique, in accordance with an implementation of the present subject matter.
[0071] The exemplary method may be described in the general context of computer
executable instructions. Generally, computer executable instructions can include routines, programs, objects, components, data structures, procedures, modules, functions, etc., that perform particular functions or implement particular abstract data types. In a distributed computing environment, computer executable instructions may be located in both local and remote computer storage media, including memory storage devices.
[0072] The order in which the methods are described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method, or an alternative method. Additionally, individual blocks may be deleted from the methods without departing from the spirit and scope of the subject matter described herein. Furthermore, the method can be implemented in any suitable hardware, software, firmware, or combination thereof. The method is explained with reference to a prescription logistics management system, however, it will be understood that the method 300 can be implemented for a plurality of data transmission systems over wireless network.
[0073] At block 302, data is captured by the DPT device 102 using an image capturing module 212. In one implementation, the data may be a video data captured by the DPT device 102 during surveillance operations. In another implementation, the data may be a combination of audio and video captured by the DPT device 104 during a presentation. It would be understood by those skilled in the art that the DPT device 102 may be a tablet PC, a smart phone a personal digital assistance, and so on.
[0074] At block 304, the captured data is compressively sampled by the compressive sensing module 108 to generate a compressed data. As mentioned earlier, the compressive sensing module 108 obtains few samples of the data at a rate lower than the Nyquist rate and compresses the sampled data. Thereby, reducing the numbering of computations and consequently reducing the power consumption by the DPT 102. In one implementation, the data may be compressed based on a random sensing matrix. The data is sampled at random intervals of time, eliminating the need for first sampling the data and then storing the entire set of samples for compressing.
[0075] At block 306, the compressed data is encoded by the real field codes encoding module 110 to generate an encoded data. In one implementation, the compressed data is encoded by taking a block of compressively sampled data at a time from a Ramanujan graph, which is constructed using the Projective Geometry. Using the Projective Geometry, the real field codes encoding module 110 obtains parity data. The encoded data is generated by adding the parity data to the compressed data. As mentioned earlier, the real field codes encoding module 110 performs addition and subtraction operations to generate an encoded data in comparison to standard encoding techniques which use multiplication and accumulation operations. Thereby, reducing the numbering of computations and consequently reducing the power consumption by the DPT 102.
[0076] At block 308, the encoded data is transmitted via the network 106 by the transmission module 214.
[0077] Fig. 4 illustrates an exemplary method 400 for receiving of data over a network, in accordance with an implementation of the present subject matter.
[0078] The exemplary method may be described in the general context of computer
executable instructions. Generally, computer executable instructions can include routines, programs, objects, components, data structures, procedures, modules, functions, etc., that perform particular functions or implement particular abstract data types. In a distributed computing environment, computer executable instructions may be located in both local and remote computer storage media, including memory storage devices.
[0079] The order in which the methods are described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method, or an alternative method. Additionally, individual blocks may be deleted from the methods without departing from the spirit and scope of the subject matter described herein. Furthermore, the method can be implemented in any suitable hardware, software, firmware, or combination thereof. The method is explained with reference to a prescription logistics management system, however, it will be understood that the method 300 can be implemented for a plurality of data transmission systems over wireless network.
[0080] At block 402, an encoded data is received by the receiver 104 transmitted via the network 106 by an information receiving module 224.
[0081] At block 404, the encoded data is decoded by the real field codes decoding module 226 to generate a decoded data. In one implementation, the encoded data is decoded by performing addition and subtraction operation to remove the redundant parity data from the encoded data.
[0082] At block 406, the decoded data is decompressed by the decompression module 228 to generate original data. In one implementation, the decompression module 228 is based on li minimization algorithm. The original data reconstructed by the decompression module 228 may be an audio data, a video data or a combination thereof.
[0083] Thus, a data transmission over a network is effectively achieved by combined used of compressive sensing technique and real field codes encoding technique. The combined use of these techniques reduces the computations complexity greatly at the DPT device side. Thereby, reducing the power consumption by the DPT device.
[0084] Although embodiments for methods and systems for data transmission over wireless network have been described in a language specific to structural features and/or methods, it is to be understood that the invention is not necessarily limited to the specific features or methods described.
I/We claim:
1. A method for data processing, the method comprising:
obtaining a data captured by data processing and transmitting (DPT) device (102);
generating a compressed data based on compressive sensing technique, wherein the obtained data is compressively sampled to generate the compressed data; and
encoding the compressed data based on real field codes encoding technique to generate an encoded data.
2. The method as claimed in claim 1, wherein the data comprises one or more of video and audio, and wherein the data is surveillance data.
3. The method as claimed in claim 1, wherein the compressive sensing technique compressively samples the data based on a sensing matrix.
4. The method as claimed in claim 3, wherein the sensing matrix is based on a random matrix, and wherein the random matrix comprises one of a Gaussian random matrix and a Bernoulli random matrix.
5. The method as claimed in claim 3, wherein the sensing matrix is based on a deterministic matrix, and wherein the deterministic matrix comprises one of a Fourier matrix and Chirp sensing codes.
6. The method as claimed in claim 1, wherein the real field codes encoding technique associates redundant parity data with the compressed data.
7. The method as claimed in claim 1, wherein the real field codes encoding technique is based on real number erasure correction cycle expander codes.
8. The method as claimed in claim 7 wherein the real number erasure correction cycle expander codes are based on simple parity-based codes over the real field.
9. The method as claimed in claim 7 wherein the real number erasure correction cycle expander codes are based on Ramanujan graphs of the Projective Geometry (PG) based incidence matrices.
10. The method as claimed in claim 1, wherein the method further comprises transmitting the encoded data over a network (106).
11. A method for data processing, the method comprising:
receiving an encoded data transmitted over a network (106);
decoding the encoded data based on real field codes decoding technique to generate a decoded data; and
reconstructing original data based on a decompression technique, wherein the decoded data is decompressed to obtain original data.
12. A data processing and transmitting (DPT) device (102) for data processing, the DPT device (102) comprising:
a processor (202-1); and
a memory (206-1) coupled to the processor (202-1), the memory (206-1) comprising: a compressive sensing module (104) configured to compressively sample an original data based on compressive sensing technique to generate a compressed data; and
a real field codes encoding module (110) configured to encode the compressed data based on real field codes encoding technique to generate an encoded data.
13. The DPT device (102) as claimed in claim 12, wherein the DPT device (102) further comprises an image capturing module (212) configured to capture the original data.
14. The DPT device (102) as claimed in claim 12, wherein the DPT device (102) is one of a smart phone, video camera, a tablet pc, and a personal digital assistance.
15. A computer-readable medium having computer-executable instructions that when executed perform acts comprising:
obtaining a data, wherein the data is one of audio, video, or a combination thereof;
generating a compressed data, wherein the obtained data is compressively sampled based on compressive sensing technique to generate the compressed data; and
encoding the compressed data, wherein the compressed data is encoded based on real field codes encoding technique to generate an encoded data.