Difference Between Image formats

August 22nd, 2008

The JPEG Format

The JPEG format support for 16.7 million colors, is primarily intended for photographic images. The internal compression algorithm of the JPEG format, unlike the GIF format, actually throws out information. Once you lower the quality of an image, and save it, the extra data cannot be regained so be sure to save the original.

The GIF Format

The GIF format is one of the most popular formats on the Internet. Not only is the format excellent at compressing areas of images with large areas of the same color, but it is also the only option for putting animation online. The GIF89a format also supports transparency, and interlacing.

GIF files support a maximum of 256 colors, which makes them practical for almost all graphics except photographs. It is important to note that GIF already uses the LZW compression scheme internally to make images as small as possible without losing any data.

The PNG format

The third, and newest, file format that’s widely supported by the Web is PNG (pronounced Ping). PNG was developed to surpass the limitations of GIFs, and as a means by which developers can avoid having to worry about the patent licenses associated with other formats. PNG was designed to offer the main features of the GIF format, including streaming and progressive file formats. It also provides greater depth of color, catering to images up to 24 bit in color. It is important to note that it doesn’t support animation.

What are the Quality Characteristics of a Software Requirement Specifications(SRS)?

August 22nd, 2008

 Complete:  SRS defines precisely all the go-live situations that will be encountered and the system’s capability to successfully address them.

 Consistent: SRS capability functions and performance levels are compatible, and the required quality features (security, reliability, etc.) do not negate those capability functions. For example, the only electric hedge trimmer that is safe is one that is stored in a box and not connected to any electrical cords or outlets.

 Accurate:  SRS precisely defines the system’s capability in a real-world environment, as well as how it interfaces and interacts with it. This aspect of requirements is a significant problem area for many SRSs.

 Modifiable:  The logical, hierarchical structure of the SRS should facilitate any necessary modifications (grouping related issues together and separating them from unrelated issues makes the SRS easier to modify).

 Ranked: Individual requirements of an SRS are hierarchically arranged according to stability, security, perceived ease/difficulty of implementation, or other parameter that helps in the design of that and subsequent documents.

 Testable:  An SRS must be stated in such a manner that unambiguous assessment criteria (pass/fail or some quantitative measure) can be derived from the SRS itself.

 Traceable:  Each requirement in an SRS must be uniquely identified to a source (use case, government requirement, industry standard, etc.)

 Unambiguous:  SRS must contain requirements statements that can be interpreted in one way only. This is another area that creates significant problems for SRS development because of the use of natural language.

 Valid:  A valid SRS is one in which all parties and project participants can understand, analyze, accept, or approve it. This is one of the main reasons SRSs are written using natural language.

 Verifiable:  A verifiable SRS is consistent from one level of abstraction to another. Most attributes of a specification are subjective and a conclusive assessment of quality requires a technical review by domain experts. Using indicators of strength and weakness provide some evidence that preferred attributes are or are not present.

What is Subversion(SVN)?

August 22nd, 2008

SVN is a free open-source  version control system. That is, SVN manages files and directories over time. Files are stored in a central repository. The repository is much like an ordinary file server, except that it remembers every change ever made to your files and directories. This allows you to recover older versions of your files and examine the history of how and when your data changed, and who changed it.

Security Mechanism in .Net

August 14th, 2008

.NET has its own security mechanism with two general features: Code Access Security (CAS), and validation and verification. Code Access Security is based on evidence that is associated with a specific assembly. Typically the evidence is the source of the assembly. Code Access Security uses evidence to determine the permissions granted to the code. Other code can demand that calling code is granted a specified permission. The demand causes the CLR to perform a call stack walk: every assembly of each method in the call stack is checked for the required permission; if any assembly is not granted the permission a security exception is thrown.

When an assembly is loaded the CLR performs various tests. Two such tests are validation and verification. During validation the CLR checks that the assembly contains valid metadata and CIL, and whether the internal tables are correct. Verification is not so exact. The verification mechanism checks to see if the code does anything that is ‘unsafe’. The algorithm used is quite conservative; hence occasionally code that is ’safe’ does not pass. Unsafe code will only be executed if the assembly has the ’skip verification’ permission, which generally means code that is installed on the local machine.

.NET Framework uses appdomains as a mechanism for isolating code running in a process. Appdomains can be created and code loaded into or unloaded from them independent of other appdomains. This helps increase the fault tolerance of the application, as faults or crashes in one appdomain do not affect rest of the application. Appdomains can also be configured independently with different security privileges. This can help increase the security of the application by isolating potentially unsafe code. The developer, however, has to split the application into subdomains; it is not done by the CLR.

Binary Runtime Environment for Wireless(BREW)

August 14th, 2008

BREW is an application development platform created by Qualcomm for mobile phones. It was originally developed for CDMA handsets, but has since been ported to other air interfaces including GSM/GPRS. BREW is a software platform that can download and run small programs for playing games, sending messages, sharing photos, etc. The main advantage of BREW platforms is that the application developers can easily port their applications between all Qualcomm devices. BREW runs between the application and the wireless device’s chip operating system so as to enable a programmer to develop applications without needing to code for system interface or understand wireless applications

Advantages and Disadvantages of XML

August 14th, 2008

Advantages of XML

1)  It supports Unicode, allowing almost any information in any written human language to be communicated.
2)  It can represent common computer science data structures: records, lists and trees.
3)  Its self-documenting format describes structure and field names as well as specific values.
4)  The strict syntax and parsing requirements make the necessary parsing algorithms extremely simple, efficient, and consistent.
5)  XML is heavily used as a format for document storage and processing, both online and offline.
6)  It is based on international standards.
7)  It can be updated incrementally.
8)  It allows validation using schema languages such as XSD and Schematron, which makes effective unit-testing, firewalls, acceptance testing, contractual specification and software construction easier.
9)  The hierarchical structure is suitable for most (but not all) types of documents.
10)  It is platform-independent, thus relatively immune to changes in technology.
11)  Forward and backward compatibility are relatively easy to maintain despite changes in DTD or Schema.

Disadvantages of XML

1)  XML syntax is redundant or large relative to binary representations of similar data especially with tabular data.
2)  The redundancy may affect application efficiency through higher storage, transmission and processing costs
3)  XML syntax is verbose, especially for human readers, relative to other alternative ‘text-based’ data transmission formats.
4)  The hierarchical model for representation is limited in comparison to an object oriented graph
5)  Expressing overlapping (non-hierarchical) node relationships requires extra effort.
6)  XML namespaces are problematic to use and namespace support can be difficult to correctly implement in an XML parser.
7)  XML is commonly depicted as “self-documenting” but this depiction ignores critical ambiguities.
8)  The distinction between content and attributes in XML seems unnatural to some and makes designing XML data structures harder.
9)  Transformations, even identity transforms, result in changes to format (whitespace, attribute ordering, attribute quoting, whitespace around attributes, newlines). These problems can make diff-ing the XML source very difficult.
10)  Encourages non-relational data structures (data non-normalized)
11)XML is very concrete and highly non-canonical. It introduces a very strong coupling between the actual representation chosen and the processing program (unlike relational storage and SQL)

How does data mining work?

August 8th, 2008

While large-scale information technology has been evolving separate transaction and analytical systems, data mining provides the link between the two. Data mining software analyzes relationships and patterns in stored transaction data based on open-ended user queries. Several types of analytical software are available: statistical, machine learning, and neural networks. Generally, any of four types of relationships are sought:

1) Classes: Stored data is used to locate data in predetermined groups. For example, a restaurant chain could mine customer purchase data to determine when customers visit and what they typically order. This information could be used to increase traffic by having daily specials.

2) Clusters: Data items are grouped according to logical relationships or consumer preferences. For example, data can be mined to identify market segments or consumer relationships.

3) Associations: Data can be mined to identify associations. The beer-shaving cream example is an example of associative mining.

4) Sequential patterns: Data is mined to anticipate behavior patterns and trends. For example, an outdoor equipment retailer could predict the likelihood of a backpack being purchased based on a consumer’s purchase of sleeping bags and hiking shoes.

Difference between RUP and XP Software Development Process

August 8th, 2008

RUP is a process framework developed by IBM Rational. It‘s an iterative development methodology based upon six industry-proven best practices (see RUP appendix). Over time, a RUP-based project goes through four phases: Inception, Elaboration, Construction, and Transition. Each phase contains one or more iterations. In each iteration, you expend effort in various amounts to each of several disciplines (or work flows) such as Requirements, Analysis and Design, Testing, and so forth. The key driver for RUP is risk mitigation. RUP has been refined by use in thousands of projects with thousands of IBM Rational customers and partners.

XP is a lightweight code-centric process for small projects.  It is the brainchild of Kent Beck and came to the software industry’s attention on the C3 payroll project at Chrysler Corporation around 1997. Like the RUP, it is based upon iterations that embody several practices such as Small Releases, Simple Design, Testing, and Continuous Integration. XP promotes several techniques that are effective for the appropriate projects and circumstances; however, there are hidden assumptions, activities, and roles.

RUP and XP come from different philosophies. RUP is a framework of process components, methods, and techniques that you can apply to any specific software project; we expect the user to specialize RUP. XP, on the other hand, is a more constrained process that needs additions to make it fit a complete development project. These differences explain the perception in the overall software development community: the big system people see RUP as the answer to their problems; the small system community sees XP as the solution to their problems.

When you combine the breadth of RUP with some of the XP techniques, you achieve the right amount of process that appeals to all members of a project and addresses all major project risks. For a small project team working in a relatively high-trust environment where the user is an integral part of the team XP can work very well. As the team becomes more distributed and the code base grows, or the architecture is not well defined, you need something else. You need more than XP for projects that have a “contractual” style of user interaction. RUP is a framework from which you can extend XP with a more robust set of techniques when they are required.

What is XML Parser ?

August 8th, 2008

Microsoft’s XML parser is a COM component that comes with Internet Explorer 5 and higher. Once you have installed Internet Explorer, the parser is available to scripts.
Microsoft’s XML parser supports all the necessary functions to traverse the node tree, access the nodes and their attribute values, insert and delete nodes, and convert the node tree back to XML.

To create an instance of Microsoft’s XML parser with JavaScript, use the following code:
var xmlDoc=new ActiveXObject(”Microsoft.XMLDOM”)

To create an instance of Microsoft’s XML parser with VBScript, use the following code:
set xmlDoc=CreateObject(”Microsoft.XMLDOM”)

To create an instance of Microsoft’s XML parser in an ASP page (using VBScript), use the following code:
set xmlDoc=Server.CreateObject(”Microsoft.XMLDOM”)

The following code loads an existing XML document (”note.xml”) into Microsoft’s XML parser:
<script type=”text/javascript”>
var xmlDoc=new ActiveXObject(”Microsoft.XMLDOM”)
xmlDoc.async=”false”
xmlDoc.load(”note.xml”)



</script>

Digital Image Processing techniques

August 1st, 2008

Digital Image Processing is a collection of techniques for the manipulation of digital images by computers. The raw data received from the imaging sensors on the satellite platforms contains flaws and deficiencies. To overcome these flaws and deficiencies in order to get the originality of the data, it needs to undergo several steps of processing. This will vary from image to image depending on the type of image format, initial condition of the image and the information of interest and the composition of the image scene. Digital Image Processing undergoes three general steps:

1)Pre-processing

Pre-processing consists of those operations that prepare data for subsequent analysis that attempts to correct or compensate for systematic errors. The digital imageries are subjected to several corrections such as geometric, radiometric and atmospheric, though all these correction might not be necessarily be applied in all cases. These errors are systematic and can be removed before they reach the user. The investigator should decide which pre-processing techniques are relevant on the basis of the nature of the information to be extracted from remotely sensed data. After pre-processing is complete, the analyst may use feature extraction to reduce the dimensionality of the data. Thus feature extraction is the process of isolating the most useful components of the data for further study while discarding the less useful aspects (errors, noise etc). Feature extraction reduces the number of variables that must be examined, thereby saving time and resources

2)Image Enhancement operations

Image Enhancement operations are carried out to improve the interpretability of the image by increasing apparent contrast among various features in the scene. The enhancement techniques depend upon two factors mainly

The digital data (i.e. with spectral bands and resolution)

The objectives of interpretation

As an image enhancement technique often drastically alters the original numeric data, it is normally used only for visual (manual) interpretation and not for further numeric analysis. Common enhancements include image reduction, image rectification, image magnification, transect extraction, contrast adjustments, band ratioing, spatial filtering, Fourier transformations, principal component analysis and texture transformation.

3)Information Extraction

Information Extraction is the last step toward the final output of the image analysis. After pre-processing and image enhancement the remotely sensed data is subjected to quantitative analysis to assign individual pixels to specific classes. Classification of the image is based on the known and unknown identity to classify the remainder of the image consisting of those pixels of unknown identity. After classification is complete, it is necessary to evaluate its accuracy by comparing the categories on the classified images with the areas of known identity on the ground. The final result of the analysis consists of maps (or images), data and a report. These three components of the result provide the user with full information concerning the source data, the method of analysis and the outcome and its reliability.