Thursday, November 28, 2019
Black Panther Essays - Panthera, Black Panther, Leopard,
Black Panther The Black Panther The black panther is a type of leopard. It belongs to the family Felidae, and is classified as Panthera pardus. Black panthers are found in Africa, Asia Minor, Middle East India, Pakistan, China, Siberia, and Southeast Asia. The male panther is called a panther, a female panther is called a panthress, and an immature panther is called a cub. The physical characteristics of the Black Panther vary. They are covered with black fur, with some darker areas that you can only see in certain lighting. The color of the panther depends on its location. The black panther has a long dark tail to go with its dark body. It has compact muscles and walks with a flowing movement in its limbs. The height of a male black panther is about nine feet, and a female is seven to eight feet tall. The male weight can weigh as little as 85 pounds and up to 198 pounds, but a female can weigh from 75 to 130 pounds. The life span of a black panther is about twenty-one years. It is considered a small cub for six months, and a large cub from six months to one and a half years. A cub remains with its mother until it is 18 to 24 months old and then it leaves to establish a territory of its own. A panther is considered a sub-adult from 1.5 to 3.5 years and a prime adult from 3.5 years to nine years. An old adult ranges in age from nine years up till around age twenty-one. The black panther's habitat is usually the jungle, where its black coat provides a great camouflage. The panther usually lives in or near a tree, and is a great tree climber. After the panther kills his prey, he takes it to the top of the tree to keep it away from other predators. The black panther has a few enemies. The lions are not fond of them, and will kill them when they get the chance. Baboons also can attack and drive the panther away and kill it, and the hyenas also drive the panthers away, and kill them so they can have the dead prey for themselves. But the panther is a very good fighter. During the day, the panther will rest, feed, hunt, walk, and court. During the night he will feed, hunt, court, and travel. The panthers are near the top of the food chain. Even though they lack the cheetah's speed, they have their own gifts. The panther is very graceful, powerful and very aggressive. The panther has an incredible jumping ability. It can jump up to twenty feet and ten feet high without much difficulty. The panther stalks his prey and waits until it is near, and then attacks. Then he grabs his prey by the neck and suffocates it until it dies. The black panther is a carnivore and his diet consists of animals as small as mice, to predators twice his size. During the day the female that is raising the young will sometimes hunt. Panthers don't have a mating season but usually mate during January and February. The panther usually abandons his usual habitat to mate. During mating, the male grasps the female's skin and holds it until mating process is complete. Then the female turns and swats the male away with her forepaw. After mating, the pair splits up and the female cares for the resulting cubs. One source says, ?the average rate of producing cubs is 15%,? so a lot of females are unsuccessful in having cubs. The panther usually lives a solitary life, except for his cubs and mate. The panther is very defensive of his territory, but respects other panther territories. There is no hierarchy, and no king. Is the black panther in danger of becoming extinct? The Black Panther is nowhere near being extinct. The Convention in the Trade of Endangered Species says ?the African Leopard, by no means, is to be considered an endangered species, with a population of about 700,00 in Africa.? Also a research team of scientists stated that ? 322 leopards could be hunted annually as trophy animals in Namibia without decimating the
Monday, November 25, 2019
Manufacturing and Process Essay Example
Manufacturing and Process Essay Example Manufacturing and Process Paper Manufacturing and Process Paper Multiple Choice Questions 1. An organizations process strategy a. will have long-run impact on efficiency and production b. is the same as its transformation strategy c. must meet various constraints, including cost d. is concerned with how resources are transformed into goods and services e. all of the above are true A job shop is an example of a(n) a. repetitive process b. continuous process c. line process d. intermittent process e. specialized process Three types of process strategies are: a. goods, services, and hybrids b. manual, automated, and service c. rocess focus, repetitive focus, and product focus d. modular, continuous, and technological Which of the following industries is likely to have low equipment utilization? a. auto manufacturing b. beer making c. television manufacturing d. hospitals A product focused process is commonly used to produce a. high-volume, high-variety products b. low-volume, high-variety products c. high-volume, low-variety products d. low-variety products at either high- or low-volume Which one of the following products is most likely made in a job shop environment? a. custom furniture b. graphite pencils c. television sets d. igarettes Which of the following products is likely to be assembled on a repetitive process line? a. automobiles b. personal computers c. dishwashers d. television sets e. all of the above An assembly line is an example of a a. product focused process b. customized process c. repetitive process d. specialized process 2. 3. 4. 5. 6. 7. 8. 1 9. Which of the following transformations generally has the highest equipment utilization? a. process focused process b. repetitive process c. product focused process d. specialized process Which of the following is false regarding repetitive processes? . They use modules. b. They allow easy switching from one product to the other. c. They are the classic assembly lines. d. They have more structure and less flexibility than a job shop layout. e. They include the assembly of basically all automobiles. Mass customization, when done correctly, a. increases pressure on supply-chain performance b. helps eliminate the guesswork that comes with sales forecasting c. drives down inventories d. increases pressure on scheduling e. all of the above Which of the following characteristics best describes process focus? a. low volume, high variety b. inished goods are usually made to order c. processes are designed to perform a wide variety of activities d. all of the above are true Service blueprintin g a. provides the basis to negotiate prices with suppliers b. mimics the way people communicate c. determines the best time for each step in the process d. focuses on the providers interaction with the customer Which of the following characteristics best describes repetitive focus? a. uses modules b. falls between product and process focus c. widely used for the assembly of automobiles d. all of the above A drawing of the movement of material, or people is a a. low diagram b. process chart c. service blueprint d. process map Strategies for improving productivity in services are a. separation, self-service, automation, and scheduling b. lean production, strategy-driven investments, automation, and process focus c. reduce inventory, reduce waste, reduce inspection, and reduce rework d. high interaction, mass customization, service factory, and Just-in-time In mass service and service factory quadrants of the service process matrix, the operations manager could focus on all of the following except a. automation b. standardization c. ight quality control 2 10. 11. 12. 13. 14. 15. 16. 17. d. customization 18. Which of the following is tru e regarding opportunities to improve service processes? a. Automation can do little to improve service processes, because services are so personal. b. Layout is of little consequence, since services seldom use an assembly line. c. If a work force is strongly committed, it need not be cross-trained and flexible. d. All of the above are true. e. None of the above are true. a. b. c. d. 20. Which of the following are typical of process control systems? They have sensors. The digitized data are analyzed by computer, which generates feedback. Their sensors take measurements on a periodic basis. all of the above 19. Which of the following is true regarding vision systems? a. They are consistently accurate. b. They are modest in cost. c. They do not become bored. d. All of the above are true. a. b. c. d. The use of information technology to monitor and control a physical process is known as process control computer-aided design information numeric control numeric control Which of the following statements regarding automated guided vehicles is false? They are used to move workers from one side of the plant to the other. They are used to deliver meals in hospitals and jails. They are an alternative to monorails, conveyors, and robots in automated material handling. They are electronically guided and controlled carts used to move parts and equipment. 21. 22. a. b. c. d. 23. Automatic placement and withdrawal of parts and products into and from designated places in a warehouse describes a. AGV b. CAD/CAM c. CIM d. ASRS Computer-integrated manufacturing (CIM) includes manufacturing systems that have a. omputer-aided design, a flexible manufacturing system, inventory control, warehousing and shipping integrated b. transaction processing, management information systems, and decision support systems integrated c. automated guided vehicles, robots, and process control d. robots, automated guided vehicles, and transfer equipment Which one of the following technologies is used only for material handling, not actual production or assembly? a. robots b. CNC c. CAD d. AGVs 3 24. 25. 26. A system using an automated work cell controlled by electronic signals from a common centralized computer facility is called a(n) a. daptive control system b. robotics c. flexible manufacturing system (FMS) d. automatic guided vehicle (AGV) system a. b. c. d. Operators simply load new programs, as necessary, to produce different products describes automated guided vehicles flexible manufacturing systems (FMS) vision systems process control Examples of the impact of technology on services include debit cards supermarket scanners electronic hotel key/lock systems all of the above Process reengineering is the fundamental rethinking and adical redesign of business processes tries to bring about dramatic improvements in performance focuses on activities that cross functional lines all of the above 27. 28. a. b. c. d. 29. a. b. c. d. 30. Making environmentally sound products through efficient processes a. is unprofitable, as long as recyclable materials prices are soft b. is known as lean manufacturing c. can still be profitable d. is easier for repetitive processes than for product-focused processes Which of the following is true regarding the concept of flexibility? a. It is the ability to change production rates with little penalty in time, cost, or customer value. . It can be accomplished with sophisticated electronic equipment. c. It may involve modular, movable, even cheap equipment. d. All of the above are true. Flexibility can be achieved with a. moveable equipment b. inexpensive equipment c. sophisticated electronic equipment d. modular equipment e. all of the above 31. 32. 4 Chapter 7: Multiple Choice Answers 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. e d c d c a e c c b e d d d a a 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. d e d d a a d a d c b d d c d e 5
Thursday, November 21, 2019
Racism in Disney Movies Research Paper Example | Topics and Well Written Essays - 1750 words
Racism in Disney Movies - Research Paper Example ed lyrics are vastly clear as they depict the oriental society as crude and completely barbaric by citing erroneous and negative accounts of their culture. Although, the song has now been revised for its offensive lyrics, but the fact that it was there to begin with clearly shows the bad stereotypes and how it was propagated in earlier versions of the film. (Bernstein & Studlar, 1997, p. 17) This deconstruction of oriental culture within western cinema was first brought to notice by Edward Saidââ¬â¢s (1978) theory of ââ¬ËOrientalismââ¬â¢, according to which Orientals were portrayed as crude and savages in the media to promote the superiority of western ideology. The racist portrayal was not only restricted to the Middle East, but the general depiction of the minorities was indeed quite warped. For instance, in Pocahontas, the story has been turned into a heartwarming romance between an Indian girl and an Englishman, with the story ending on a heartwarmingly happier note, wit h both ethnicities finally living in harmony. On the other hand, the real events were not as delightful as the one shown in the movie, which clearly represents how misguiding these movies are for the children. In the end, the Indian servant and Pocahontasââ¬â¢ union with her white lover clearly shows the westââ¬â¢s perceived superiority, which is blatantly and colorfully projected on to the big screens for the young children. In reality, the Native Indians were systematically wiped out to help the white faction gain the upper hand over the region; a painful historical fact that was skillfully masked in the film. Furthermore, in several instances the Native Indians are openly referred to as savages, which is further detrimental in establishing an image for the child. Even in Peter Pan, the Native Indians are... As a matter of fact, the obsession with the notion of ââ¬Ëhappily ever afterââ¬â¢ is not only contained within the west, but all over the world young girls and boys are ardent fans of Disney motion pictures. Although, parents may not find anything bothersome regarding the content that they are feeding their children through the movies, but analysts have discovered a number of nefarious undertones within the innocent storylines of their movies. Although, Disney has tried their best to remove all the aforementioned racist lyrics but the fact that they are still present on previous copies of the movies continues to make it alarming for parents. Even though, some parents have deemed the presence of these racist elements as completely unimportant, but it is an undeniable fact that children are highly impressionable and thus are greatly influenced by the things they see on television. Disney movies may cause them to establish erroneous pre-conceived notions about people who seem to possess the traits that are present in all the unfavorable cartoon characters. They may hear a black man speaking and immediately make the association that they are lazy and idle like the crows in Dumbo and even believe that all Native Indians are crude and have bad grammar. These pre-conceived notions will only make it difficult for them to associate or identify themselves with other races on a human level. Therefore, it is not healthy for parents to continually expose their child to such content as it narrows down the childââ¬â¢s horizon and he continues to view foreignness in a negative light and children belonging to minority groups may grow up to view western values and cultures as completely superior to their own.
Wednesday, November 20, 2019
Physical Structure of a Neuron (Neuron-to-Neuron Communication) Essay
Physical Structure of a Neuron (Neuron-to-Neuron Communication) - Essay Example Examples of the ten different body systems are the circulatory system, the digestive system, the integumentary (skin), the skeletal, the muscular, the digestive, respiratory, the reproductive, the endocrine and the nervous system. All these systems work together in harmony that makes the human body a complex whole. Vitamins, nutrients and minerals are necessary for all the systems to work perfectly to attain and maintain good health. Regular exercise, proper diet and a healthy lifestyle all contribute and work together to make these systems function properly. Perhaps one of the most complex body system is the nervous system. This is the set of body system that is composed of very highly-specialized cells involved with the receiving and its transmission of information from both internal and external stimuli. In other words, this system is responsible for the receipt and relay of various communications within the human body. It is a complex system composed of the brain, the spinal colu mn and the nerves. The nervous system also includes the special sense organs of the eyes, the ears, nose, taste buds and skin. In effect, the nervous system is the control system of the human body. It is a sort of a command center made up of the central nervous system (brain and spinal column) and the peripheral nervous system (the spinal nerves and the twelve cranial nerves). ... It is also known by other terms like biopsychology, behavioural neuroscience and physiological psychology but the ultimate aim is the same, which is to better understand how a human nervous system and its components explain our behaviours as well as various ailments. In this regard it is very important to study and understand how biological processes affect not only behaviours and emotions but the entire cognitive process as well. For this purpose, it is crucial to explore how a person's actions are greatly influenced by the brain, neurotransmitters and the nervous system. It is therefore necessary to study the complex inter-relationship between anatomy and physiology in the complex human process of biological growth and development. This very fascinating field of study has already yielded some useful insights into how the nervous system affects and influences the entire body and indeed the whole person through a discovery of the role of chemical transmission by neurotransmitters wit hin this system in relay of information from various stimuli (Wickens, 2005, p. 11). It is in this connection that this paper is discussing the basic unit of the nervous system which is the neuron and how the neurons in turn transmit crucial information between them. An understanding of a neuron's physical structure is a necessary adjunct to the process of understanding in the entire chemical transmission process. An example of a neurotransmitter is dopamine; too little of it causes Parkinson's and Alzheimer's but too much of it is associated with psychological disorders like dyslexia and schizophrenia. Physical Structure of a Neuron ââ¬â the neuron is a single cell which is the basic unit or building block of the entire nervous system.
Monday, November 18, 2019
Supermarket Company Strategic Analysis Assignment
Supermarket Company Strategic Analysis - Assignment Example The report below provides an insight into the supermarket company, Tesco, with emphasis on its external environment analysis and company's analysis of resources, competence and culture. Two future strategic options are suggested in regards to the resources based strategies. Tesco is one of the largest food retailers in the world, operating around 2,318 stores and employing over 326,000 people. It provides online services through its subsidiary, Tesco.com. The UK is the company's largest market, where it operates under four banners of Extra, Superstore, Metro and Express. The company sells almost 40,000 food products, including clothing and other non-food lines. The company's own-label products (50 percent of sales) are at three levels, value, normal and finest. As well as convenience produce, many stores have gas stations, becoming one of Britain's largest independent petrol retailers. Other retailing services offered include Tesco Personal Finance. Operating in a globalised environment with stores around the globe, Tesco's performance is highly influenced by the political and legislative conditions of these countries, including the European Union (EU). For employment legislations, the government encourages retailers to provide a mix of job opportunities from flexible, lower-paid and locally-based jobs to highly-skilled, higher-paid and centrally-located jobs (Finch, 2005). Also to meet the demand from population segments such as students, working parents and senior citizens. Tesco understands that retailing has a great impact on jobs and people factors (new store developments are often seen as destroying other jobs in the retail sector as traditional stores go out of business or are forced to cut costs to compete), being an essentially local and labour-intensive sector. Tesco employs large numbers of; student, disabled and elderly workers, often paying them lower rates. In an industry with a typically high staff turnover, these workers offer a higher level of loyalty and therefore represent desirable candidates. Economical Factors Economic factors are of concern to Tesco, because they are likely to influence demand, costs, prices and profits. One of the most influential factors on the economy is high unemployment levels, which decreases the effective demand for many goods, adversely affecting the demand required to produce such goods. These economic factors are largely outside the control of the company, but their effects on performance and the marketing mix can be profound. Although international business is still growing (Appendix A), and is expected to contribute greater amounts to Tesco's profits over the next few years, the company is still highly dependent on the UK market. Hence, Tesco would be badly affected by any setback in the UK food market and are out in the open to market concentration risks. Social/Cultural Factors Current trends indicate that British customers have moved towards 'one-stop' and 'bulk' shopping, which is due to a variety of changes in social trends. Tesco have, therefore, increased the amount of non-food items available for sale. Demographic changes such as the aging population, an increase in female workers and a decline in home meal preparation mean that UK retailers are also focusing on
Friday, November 15, 2019
H.264 Video Streaming System on Embedded Platform
H.264 Video Streaming System on Embedded Platform ABSTRACT The adoption of technological products like digital television and video conferencing has made video streaming an active research area. This report presents the integration of a video streamer module into a baseline H.264/AVC encoder running a TMSDM6446EVM embedded platform. The main objective of this project is to achieve real-time streaming of the baseline H.264/AVC video over a local area network (LAN) which is a part of the surveillance video system. The encoding of baseline H.264/AVC and the hardware components of the platform are first discussed. Various streaming protocols are studied in order to implement the video streamer on the DM6446 board. The multi-threaded application encoder program is used to encode raw video frames into H.264/AVC format onto a file. For the video streaming, open source Live555 MediaServer was used to stream video data to a remote VLC client over LAN. Initially, file streaming was implemented from PC to PC. Upon successfully implementation on PC, the video streamer was ported to the board. The steps involved in porting the Live555 application were also described in the report. Both unicast and multicast file streaming were implemented in the video streamer. Due to the problems of file streaming, the live streaming approach was adopted. Several methodologies were discussed in integrating the video streamer and the encoder program. Modification was made both the encoder program and the Live555 application to achieve live streaming of H.264/AVC video. Results of both file and live streaming will be shown in this report. The implemented video streamer module will be used as a base module of the video surveillance system. Chapter 1: Introduction 1.1. Background Significant breakthroughs have been made over the last few years in the area of digital video compression technologies. As such applications making use of these technologies have also become prevalent and continue to be of active research topics today. For example, digital television and video conferencing are some of the applications that are now commonly encountered in our daily lives. One application of interest here is to make use of the technologies to implement a video camera surveillance system which can enhance the security of consumers business and home environment. In typical surveillance systems, the captured video is sent over a cable networks to be monitored and stored at remote stations. As the captured raw video contains large amount of data, it will be of advantage to first compress the data by using a compression technique before it is transferred over the network. One such compression technique that is suitable for this type of application is the H.264 coding standard. H.264 coding is better than the other coding technique for video streaming as it is more robust to data losses and coding efficiency, which are important factors when streaming is performed over a shared Local Area Network. As there is an increasing acceptance of H.264 coding and the availability of high computing power embedded systems, digital video surveillance system based on H.264 on embedded platform is hence a feasible and a potentially more cost-effective system. Implementing a H.264 video streaming system on an embedded platform is a logical extension of video surveillance systems which are still typical implemented using high computing power stations (e.g. PC). In a embedded version, a Digital Signal Processor (DSP) forms the core of the embedded system and executes the intensive signal processing algorithm. Current embedded systems typical also include network features which enable the implementation of data streaming applications. To facilitate data streaming, a number of network protocol standards have also being defined, and are currently used for digital video applications. 1.2. Objective and Scope The objective of this final year project is to implement a video surveillance system based on the H.264 coding standard running on an embedded platform. Such a system contains extensive scopes of functionalities and would require extensive amount of development time if implemented from scratch. Hence this project is to focus on the data streaming aspect of a video surveillance system. After some initial investigation and experimentation, it is decided to confine the main scope of the project to developing a live streaming H.264 based video system running on a DM6446 EVM development platform. The breakdown of the work to be progressive performed are then identified as follows: 1. Familiarization of open source live555 streaming media server Due to the complexity of implementing the various standard protocols needed for multimedia streaming, the live555 media server program is used as a base to implement the streaming of the H.264.based video data. 2. Streaming of stored H.264 file over the network The live555 is then modified to support streaming of raw encoded H.264 file from the DM6446 EVM board over the network. Knowledge of H.264 coding standard is necessary in order to parse the file stream before streaming over the network. 3. Modifying a demo version of an encoder program and integrating it together with live555 to achieve live streaming The demo encoder was modified to send encoded video data to the Live555 program which would do the necessary packetization to be streamed over the network. Since data is passed from one process to another, various inter-process communication techniques were studied and used in this project. 1.3. Resources The resources used for this project are as follows: 1. DM6446 (DaVinciâ⠢) Evaluation Module 2. SWANN C500 Professional CCTV Camera Solution 400 TV Lines CCD Color Camera 3. LCD Display 4. IR Remote Control 5. TI Davinci demo version of MontaVista Linux Pro v4.0 6. A Personal Workstation with Centos v5.0 7. VLC player v.0.9.8a as client 8. Open source live555 program (downloaded from www.live555.com) The system setup of this project is shown below: 1.4. Report Organization This report consists of 7 chapters. Chapter 1 introduces the motivation behind embedded video streaming system and defines the scope of the project. Chapter 2 illustrates the video literature review of the H.264/AVC video coding technique and the various streaming protocols which are to be implemented in the project. Chapter 3 explains the hardware literature review of the platform being used in the project. The architecture, memory management, inter-process communication and the software tools are also discussed in this chapter. Chapter 4 explains the execution of the encoder program of the DM6446EVM board. The interaction of the various threads in this multi-threaded application is also discussed to fully understand the encoder program. Chapter 5 gives an overview of the Live555 MediaServer which is used as a base to implement the video streamer module on the board. Adding support to unicast and multicast streaming, porting of live555 to the board and receiving video stream on remote VCL client are explained in this chapter. Chapter 6 explains the limitations of file streaming and moving towards live streaming system. Various integration methodologies and modification to both encoder program and live555 program are shown as well. Chapters 7 summarize the implementation results of file and live streaming, analysis the performance of these results. Chapter 8 gives the conclusion by stating the current limitation and problems, scope for future implementation. Chapter 2: Video Literature Review 2.1. H.264/AVC Video Codec Overview H.264 is the most advanced and latest video coding technique. Although there are many video coding schemes like H.26x and MPEG, H.264/AVC made many improvements and tools for coding efficiency and error resiliency. This chapter briefly will discuss the network aspect of the video coding technique. It will also cover error resiliency needed for transmission of video data over the network. For a more detailed explanation of the H.264/AVC, refer to appendix A. 2.1.1. Network Abstraction Layer (NAL) The aim of the NAL is to ensure that the data coming from the VCL layer is ââ¬Å"network worthyâ⬠so that the data can be used for numerous systems. NAL facilitates the mapping of H.264/AVC VCL data for different transport layers such as: * RTP/IP real-time streaming over wired and wireless mediums * Different storage file formats such as MP4, MMS, AVI and etc. The concepts of NAL and error robustness techniques of the H.264/AVC will be discussed in the following parts of the report. NAL Units The encoded data from the VCL are packed into NAL units. A NAL unit represents a packet which makes up of a certain number of bytes. The first byte of the NAL unit is called the header byte which indicates the data type of the NAL unit. The remaining bytes make up the payload data of the NAL unit. The NAL unit structure allows provision for different transport systems namely packet-oriented and bit stream-oriented. To cater for bit stream-oriented transport systems like MPEG-2, the NAL units are organized into byte stream format. These units are prefixed by a specific start code prefix of three bytes which is namely 0x000001. The start code prefix indicates and the start of each NAL units and hence defining the boundaries of the units. For packet-oriented transport systems, the encoded video data are transported via packets defined by transport protocols. Hence, the boundaries of the NAL units are known without having to include start code prefix byte. The details of packetization of NAL units will be discussed in later sections of the report. NAL units are further categorized into two types: * VCL unit: comprises of encoded video data à · Non-VCL unit: comprises of additional information like parameter sets which is the important header information. Also contains supplementary enhancement information (SEI) which contains the timing information and other data which increases the usability of the decoded video signal. Access units A group of NAL units which adhere to a certain form is called a access unit. When one access unit is decoded, one decoded picture is formed. In the table 1 below, the functions of the NAL units derived from the access units are explained. Data/Error robustness techniques H.264/AVC has several techniques to mitigate error/data loss which is an essential quality when it comes to streaming applications. The techniques are as follows: à · Parameter sets: contains information that is being applied to large number of VCL NAL units. It comprises of two kinds of parameter sets: Sequence Parameter set (SPS) : Information pertaining to sequence of encoded picture Picture Parameter Set (PPS) : Information pertaining to one or more individual pictures The above mentioned parameters hardly changes and hence it need not be transmitted repeatedly and saves overhead. The parameter sets can be sent ââ¬Å"in-bandâ⬠which is carried in the same channel as the VCL NAL units. It can also be sent ââ¬Å"out-of-bandâ⬠using reliable transport protocol. Therefore, it enhances the resiliency towards data and error loss. à · Flexible Macroblock Ordering (FMO) FMO maps the macroblocks to different slice groups. In the event of any slice group loss, missing data is masked up by interpolating from the other slice groups. à · Redundancy Slices (RS) Redundant representation of the picture can be stored in the redundant slices. If the loss of the original slice occurs, the decoder can make use of the redundant slices to recover the original slice. These techniques introduced in the H.264/AVC makes the codec more robust and resilient towards data and error loss. 2.1.2. Profiles and Levels A profile of a codec is defined as the set of features identified to meet a certain specifications of intended applications For the H.264/AVC codec, it is defined as a set of features identified to generate a conforming bit stream. A level is imposes restrictions on some key parameters of the bit stream. In H.264/AVC, there are three profiles namely: Baseline, Main and Extended. 5 shows the relationship between these profiles. The Baseline profile is most likely to be used by network cameras and encoders as it requires limited computing resources. It is quite ideal to make use of this profile to support real-time streaming applications in a embedded platform. 2.2. Overview of Video Streaming In previous systems, accessing video data across network exploit the ââ¬Ëdownload and play approach. In this approach, the client had to wait until the whole video data is downloaded to the media player before play out begins. To combat the long initial play out delay, the concept of streaming was introduced. Streaming allows the client to play out the earlier part of the video data whilst still transferring the remaining part of the video data. The major advantage of the streaming concept is that the video data need not be stored in the clients computer as compared to the traditional ââ¬Ëdownload and play approach. This reduces the long initial play out delay experienced by the client. Streaming adopts the traditional client/server model. The client connects to the listening server and request for video data. The server sends video data over to the client for play out of video data. 2.2.1. Types of Streaming There are three different types of streaming video data. They are pre-recorded/ file streaming, live/real-time streaming and interactive streaming. * Pre-recorded/live streaming: The encoded video is stored into a file and the system streams the file over the network. A major overhead is that there is a long initial play out delay (10-15s) experienced by the client. * Live/real-time streaming: The encoded video is streamed over the network directly without being stored into a file. The initial play out delay reduces. Consideration must be taken to ensure that play out rate does not exceed sending rate which may result in jerky the picture. On the other hand, if the sending rate is too slow, the packets arriving at the client may be dropped, causing in a freezing the picture. The timing requirement for the end-to-end delay is more stringent in this scenario. * Interactive streaming: Like live streaming, the video is streamed directly over the network. It responds to users control input such as rewind, pause, stop, play and forward the particular video stream. The system should respond in accordance to those inputs by the user. In this project, both pre-recorded and live streaming are implemented. Some functionality of interactive streaming controls like stop and play are also part of the system. 2.2.2. Video Streaming System modules Video Source The intent of the video source is to capture the raw video sequence. The CCTV camera is used as the video source in this project. Most cameras are of analogue inputs and these inputs are connected to the encoding station via video connections. This project makes use of only one video source due to the limitation of the video connections on the encoding station. The raw video sequence is then passed onto the encoding station. Encoding Station The aim of the encoding station digitized and encodes the raw video sequence into the desired format. In the actual system, the encoding is done by the DM6446 board into the H.264/AVC format. Since the hardware encoding is CPU intensive, this forms the bottleneck of the whole streaming system. The H.264 video is passed onto the video streamer server module of the system. Video Streaming and WebServer The role of the video streaming server is to packetize the H.264/AVC to be streamed over the network. It serves the requests from individual clients. It needs to support the total bandwidth requirements of the particular video stream requested by clients. WebServer offers a URL link which connects to the video streaming server. For this project, the video streaming server module is embedded inside DM6446 board and it is serves every individual clients requests. Video Player The video player acts a client connecting to and requesting video data from the video streaming server. Once the video data is received, the video player buffers the data for a while and then begins play out of data. The video player used for this project is the VideoLAN (VLC) Player. It has the relevant H.264/AVC codec so that it can decode and play the H264/AVC video data. 2.2.3. Unicast VS Multicast There are two key delivery techniques employed by streaming media distribution. Unicast transmission is the sending of data to one particular network destination host over a packet switched network. It establishes two way point-to-point connection between client and server. The client communicates directly with the server via this connection. The drawback is that every connection receives a separate video stream which uses up network bandwidth rapidly. Multicast transmission is the sending of only one copy of data via the network so that many clients can receive simultaneously. In video streaming, it is more cost effective to send single copy of video data over the network so as to conserve the network bandwidth. Since multicast is not connection oriented, the clients cannot control the streams that they can receive. In this project, unicast transmission is used to stream encoded video over the network. The client connects directly to the DM6446 board where it gets the encoded video data. The project can easily be extended to multicast transmission. 2.3. Streaming Protocols When streaming video content over a network, a number of network protocols are used. These protocols are well defined by the Internet Engineering Task Force (IETF) and the Internet Society (IS) and documented in Request for Comments (RFC) documents. These standards are adopted by many developers today. In this project, the same standards are also employed in order to successfully stream H.264/AVC content over a simple Local Area Network (LAN). The following sections will discuss about the various protocols that are studied in the course of this project. 2.3.1. Real-Time Streaming Protocol (RTSP) The most commonly used application layer protocol is RTSP. RTSP acts a control protocol to media streaming servers. It establishes connection between two end points of the system and control media sessions. Clients issue VCR-like commands like play and pause to facilitate the control of real-time playback of media streams from the servers. However, this protocol is not involved in the transport of the media stream over the network. For this project, RTSP version 1.0 is used. RTSP States Like the Hyper Text Transfer Protocol (HTTP), it contains several methods. They are OPTIONS, DESCRIBE, SETUP, PLAY, PAUSE, RECORD and TEARDOWN. These commands are sent by using the RTSP URL. The default port number used in this protocol is 554. An example of such as URL is: rtsp:// à · OPTIONS: An OPTIONS request returns the types of request that the server will accept. An example of the request is: OPTIONS rtsp://155.69.148.136:554/test.264 RTSP/1.0 CSeq: 1rn User-agent: VLC media Player The CSeq parameter keeps track of the number of request send to the server and it is incremented every time a new request is issued. The User-agent refers to the client making the request. * DESCRIBE: This method gets the presentation or the media object identified in the request URL from the server. An example of such a request: DESCRIBE rtsp://155.69.148.138:554/test.264 RTSP/1.0 CSeq: 2rn Accept: application/sdprn User agent: VLC media Player The Accept header is used to describe the formats understood by the client. All the initialization of the media resource must be present in the DESCRIBE method that it describes. à · SETUP: This method will specify the mode of transport mechanism to be used for the media stream. A typical example is: SETUP rtsp://155.69.148.138:554/test.264 RTSP/1.0 CSeq: 3rn Transport: RTP/AVP; unicast; client_port = 1200-1201 User agent: VLC media Player The Transport header specifies the transport mechanism to be used. In this case, real-time transport protocol is used in a unicast manner. The relevant client port number is also reflected and it is selected randomly by the server. Since RTSP is a stateful protocol, a session is created upon successful acknowledgement to this method. à · PLAY: This method request the server to start sending the data via the transport mechanism stated in the SETUP method. The URL is the same as the other methods except for: Session: 6 Range: npt= 0.000- rn The Session header specifies the unique session id. This is important as server may establish various sessions and this keep tracks of them. The Range header positions play time to the beginning and plays till the end of the range. * PAUSE: This method informs the server to pause sending of the media stream. Once the PAUSE request is sent, the range header will capture the position at which the media stream is paused. When a PLAY request is sent again, the client will resume playing from the current position of the media stream as specified in the range header. RSTP Status Codes Whenever the client sends a request message to the server, the server forms a equivalent response message to be sent to the client. The response codes are similar to HTTP as they are both in ASCII text. They are as follows: 200: OK 301: Redirection 405: Method Not Allowed 451: Parameter Not Understood 454: Session Not Found 457: Invalid Range 461: Unsupported Transport 462: Destination Unreachable These are some of the RTSP status codes. There are many others but the codes mentioned above are of importance in the context of this project. 2.3.2. Real-time Transport Protocol (RTP) RTP is a defined packet structure which is used for transporting media stream over the network. It is a transport layer protocol but developers view it as a application layer protocol stack. This protocol facilitates jitter compensation and detection of incorrect sequence arrival of data which is common for transmission over IP network. For the transmission of media data over the network, it is important that packets arrive in a timely manner as it is loss tolerant but not delay tolerant. Due to the high latency of Transmission Control Protocol in establishing connections, RTP is often built on top of the User Datagram Protocol (UDP). RTP also supports multicast transmission of data. RTP is also a stateful protocol as a session is established before data can be packed into the RTP packet and sent over the network. The session contains the IP address of the destination and port number of the RTP which is usually an even number. The following section will explain about the packet structure of RTP which is used for transmission. RTP Packet Structure The below shows a RTP packet header which is appended in front of the media data.s The minimum size of the RTP header is 12 bytes.. Optional extension information may be present after the header information. The fields of the header are: à · V: (2 bits) to indicate the version number of the protocol. Version used in this project is 2. à · P (Padding): (1 bit) to indicate if there padding which can be used for encryption algorithm à · X (Extension): (1 bit) to indicate if there is extension information between header and payload data. à · CC (CSRC Count) : (4 bits) indicates the number of CSRC identifiers à · M (Marker): (1 bit) used by application to indicate data has specific relevance in the perspective of the application. The setting for M bit marks the end of video data in this project à · PT (Payload Type): (7 bits) to indicate the type of payload data carried by the packet. H.264 is used for this project à · Sequence number: (16 bits) incremented by one for every RTP packet. It is used to detect packet loss and out of sequence packet arrival. Based on this information, application can take appropriate action to correct them. à · Time Stamp: (32 bits) receivers use this information to play samples at correct intervals of time. Each stream has independent time stamps. à · SSRC: (32 bits) it unique identifies source of the stream. à · CSRC: sources of a stream from different sources are enumerated according to its source IDs. This project does not involve the use of Extension field in the packet header and hence will not be explained in this report. Once this header information is appended to the payload data, the packet is sent over the network to the client to be played. The table below summarizes the payload types of RTP and highlighted region is of interest in this project. Table 2: Payload Types of RTP Packets 2.3.3. RTP Control Protocol (RTCP) RTCP is a sister protocol which is used in conjunction with the RTP. It provides out-of-band statistical and control information to the RTP session. This provides certain Quality of Service (QoS) for transmission of video data over the network. The primary functions of the RTCP are: * To gather statistical information about the quality aspect of the media stream during a RTP session. This data is sent to the session media source and its participants. The source can exploit this information for adaptive media encoding and detect transmission errors. * It provides canonical end point identifiers (CNAME) to all its session participants. It allows unique identification of end points across different application instances and serves as a third party monitoring tool. * It also sends RTCP reports to all its session participants. By doing so, the traffic bandwidth increases proportionally. In order to avoid congestion, RTCP has bandwidth management techniques to only use 5% of the total session bandwidth. RTCP statistical data is sent odd numbered ports. For instance, if RTP port number is 196, then RTCP will use the 197 as its port number. There is no default port number assigned to RTCP. RTCP Message Types RTCP sends several types of packets different from RTP packets. They are sender report, receiver report, source description and bye. à · Sender Report (SR): Sent periodically by senders to report the transmission and reception statistics of RTP packets sent in a period of time. It also includes the senders SSRC and senders packet count information. The timestamp of the RTP packet is also sent to allow the receiver to synchronize the RTP packets. The bandwidth required for SR is 25% of RTCP bandwidth. à · Receiver Report (RR): It reports the QoS to other receivers and senders. Information like highest sequence number received, inter arrival jitter of RTP packets and fraction of packets loss further explains the QoS of the transmitted media streams. The bandwidth required for RR is 75% of the RTCP bandwidth. à · Source Description (SDES): Sends the CNAME to its session participants. Additional information like name, address of the owner of the source can also be sent. à · End of Participation (BYE): The source sends a BYE message to indicate that it is shutting down the stream. It serves as an announcement that a particular end point is leaving the conference. Further RTCP Consideration This protocol is important to ensure that QoS standards are achieved. The acceptable frequencies of these reports are less than one minute. In major application, the frequency may increase as RTCP bandwidth control mechanism. Then, the statistical reporting on the quality of the media stream becomes inaccurate. Since there are no long delays introduced between the reports in this project, the RTCP is adopted to incorporate a certain level of QoS on streaming H.264/AVC video over embedded platform. 2.3.4. Session Description Protocol (SDP) The Session Description Protocol is a standard to describe streaming media initialization parameters. These initializations describe the sessions for session announcement, session invitation and parameter negotiation. This protocol can be used together with RTSP. In the previous sections of this chapter, SDP is used in the DESCRIBE state of RTSP to get sessions media initialization parameters. SDP is scalable to include different media types and formats. SDP Syntax The session is described by attribute/value pairs. The syntax of SDP are summarized in the below. In this project, the use of SDP is important in streaming as the client is VLC Media Player. If the streaming is done via RTSP, then VLC expects a sdp description from the server in order to setup the session and facilitate the playback of the streaming media. Chapter 3: Hardware Literature Review 3.1. Introduction to Texas Instrument DM6446EVM DavinciTM The development of this project based on the DM6446EVM board. It is necessary to understand the hardware and software aspects of this board. The DM6446 board has a ARM processor operating at a clock speed up to 300MHz and a C64x Digital Signal Processor operating at a clock speed of up to 600MHz. 3.1.1. Key Features of DM6446 The key features that are shown in the above are: * 1 video port which supports composite of S video * 4 video DAC outputs: component, RGB, composite * 256 MB of DDR2 DRAM * UART, Media Card interface (SD, xD, SM, MS ,MMC Cards) * 16 MB of non-volatile Flash Memory, 64 MB NAND Flash, 4 MB SRAM * USB2 interface * 10/100 MBS Ethernet interface * Configurable boot load options * IR Remote Interface, real time clock via MSP430 3.1.2. DM6446EVM Architecture The architecture of the DM6446 board is organized into several subsystems. By knowing the architecture of the DM6446, the developer can then design and built his application module on the boards underlining architecture. The shows that DM6446 has three subsystems which are connected to the underlying hardware peripherals. This provides a decoupled architecture which allows the developers to implement his applications on a particular subsystem without having to modify the other subsystems. Some of subsystems are discussed in the next sections. ARM Subsystem The ARM subsystem is responsible for the master control of the DM6446 board. It handles the system-level initializations, configurations, user interface, connectivity functions and control of DSP subsystems. The ARM has a larger program memory space and better context switching capabilities and hence it is more suited to handle complex and multi tasks of the system. DSP Subsystem The DSP subsystem is mainly the encoding the raw captured video frames into the desired format. It performs several number crunching operations in order to achieve the desired compression technique. It works together with the Video Imaging Coprocessor to compress the video frames. Video Imaging Coprocessor (VICP) The VICP is a signal processing library which contains various software algorithms that execute on VICP hardware accelerator. It helps the DSP by taking over computation of varied intensive tasks. Since hardware implementation of number cru H.264 Video Streaming System on Embedded Platform H.264 Video Streaming System on Embedded Platform ABSTRACT The adoption of technological products like digital television and video conferencing has made video streaming an active research area. This report presents the integration of a video streamer module into a baseline H.264/AVC encoder running a TMSDM6446EVM embedded platform. The main objective of this project is to achieve real-time streaming of the baseline H.264/AVC video over a local area network (LAN) which is a part of the surveillance video system. The encoding of baseline H.264/AVC and the hardware components of the platform are first discussed. Various streaming protocols are studied in order to implement the video streamer on the DM6446 board. The multi-threaded application encoder program is used to encode raw video frames into H.264/AVC format onto a file. For the video streaming, open source Live555 MediaServer was used to stream video data to a remote VLC client over LAN. Initially, file streaming was implemented from PC to PC. Upon successfully implementation on PC, the video streamer was ported to the board. The steps involved in porting the Live555 application were also described in the report. Both unicast and multicast file streaming were implemented in the video streamer. Due to the problems of file streaming, the live streaming approach was adopted. Several methodologies were discussed in integrating the video streamer and the encoder program. Modification was made both the encoder program and the Live555 application to achieve live streaming of H.264/AVC video. Results of both file and live streaming will be shown in this report. The implemented video streamer module will be used as a base module of the video surveillance system. Chapter 1: Introduction 1.1. Background Significant breakthroughs have been made over the last few years in the area of digital video compression technologies. As such applications making use of these technologies have also become prevalent and continue to be of active research topics today. For example, digital television and video conferencing are some of the applications that are now commonly encountered in our daily lives. One application of interest here is to make use of the technologies to implement a video camera surveillance system which can enhance the security of consumers business and home environment. In typical surveillance systems, the captured video is sent over a cable networks to be monitored and stored at remote stations. As the captured raw video contains large amount of data, it will be of advantage to first compress the data by using a compression technique before it is transferred over the network. One such compression technique that is suitable for this type of application is the H.264 coding standard. H.264 coding is better than the other coding technique for video streaming as it is more robust to data losses and coding efficiency, which are important factors when streaming is performed over a shared Local Area Network. As there is an increasing acceptance of H.264 coding and the availability of high computing power embedded systems, digital video surveillance system based on H.264 on embedded platform is hence a feasible and a potentially more cost-effective system. Implementing a H.264 video streaming system on an embedded platform is a logical extension of video surveillance systems which are still typical implemented using high computing power stations (e.g. PC). In a embedded version, a Digital Signal Processor (DSP) forms the core of the embedded system and executes the intensive signal processing algorithm. Current embedded systems typical also include network features which enable the implementation of data streaming applications. To facilitate data streaming, a number of network protocol standards have also being defined, and are currently used for digital video applications. 1.2. Objective and Scope The objective of this final year project is to implement a video surveillance system based on the H.264 coding standard running on an embedded platform. Such a system contains extensive scopes of functionalities and would require extensive amount of development time if implemented from scratch. Hence this project is to focus on the data streaming aspect of a video surveillance system. After some initial investigation and experimentation, it is decided to confine the main scope of the project to developing a live streaming H.264 based video system running on a DM6446 EVM development platform. The breakdown of the work to be progressive performed are then identified as follows: 1. Familiarization of open source live555 streaming media server Due to the complexity of implementing the various standard protocols needed for multimedia streaming, the live555 media server program is used as a base to implement the streaming of the H.264.based video data. 2. Streaming of stored H.264 file over the network The live555 is then modified to support streaming of raw encoded H.264 file from the DM6446 EVM board over the network. Knowledge of H.264 coding standard is necessary in order to parse the file stream before streaming over the network. 3. Modifying a demo version of an encoder program and integrating it together with live555 to achieve live streaming The demo encoder was modified to send encoded video data to the Live555 program which would do the necessary packetization to be streamed over the network. Since data is passed from one process to another, various inter-process communication techniques were studied and used in this project. 1.3. Resources The resources used for this project are as follows: 1. DM6446 (DaVinciâ⠢) Evaluation Module 2. SWANN C500 Professional CCTV Camera Solution 400 TV Lines CCD Color Camera 3. LCD Display 4. IR Remote Control 5. TI Davinci demo version of MontaVista Linux Pro v4.0 6. A Personal Workstation with Centos v5.0 7. VLC player v.0.9.8a as client 8. Open source live555 program (downloaded from www.live555.com) The system setup of this project is shown below: 1.4. Report Organization This report consists of 7 chapters. Chapter 1 introduces the motivation behind embedded video streaming system and defines the scope of the project. Chapter 2 illustrates the video literature review of the H.264/AVC video coding technique and the various streaming protocols which are to be implemented in the project. Chapter 3 explains the hardware literature review of the platform being used in the project. The architecture, memory management, inter-process communication and the software tools are also discussed in this chapter. Chapter 4 explains the execution of the encoder program of the DM6446EVM board. The interaction of the various threads in this multi-threaded application is also discussed to fully understand the encoder program. Chapter 5 gives an overview of the Live555 MediaServer which is used as a base to implement the video streamer module on the board. Adding support to unicast and multicast streaming, porting of live555 to the board and receiving video stream on remote VCL client are explained in this chapter. Chapter 6 explains the limitations of file streaming and moving towards live streaming system. Various integration methodologies and modification to both encoder program and live555 program are shown as well. Chapters 7 summarize the implementation results of file and live streaming, analysis the performance of these results. Chapter 8 gives the conclusion by stating the current limitation and problems, scope for future implementation. Chapter 2: Video Literature Review 2.1. H.264/AVC Video Codec Overview H.264 is the most advanced and latest video coding technique. Although there are many video coding schemes like H.26x and MPEG, H.264/AVC made many improvements and tools for coding efficiency and error resiliency. This chapter briefly will discuss the network aspect of the video coding technique. It will also cover error resiliency needed for transmission of video data over the network. For a more detailed explanation of the H.264/AVC, refer to appendix A. 2.1.1. Network Abstraction Layer (NAL) The aim of the NAL is to ensure that the data coming from the VCL layer is ââ¬Å"network worthyâ⬠so that the data can be used for numerous systems. NAL facilitates the mapping of H.264/AVC VCL data for different transport layers such as: * RTP/IP real-time streaming over wired and wireless mediums * Different storage file formats such as MP4, MMS, AVI and etc. The concepts of NAL and error robustness techniques of the H.264/AVC will be discussed in the following parts of the report. NAL Units The encoded data from the VCL are packed into NAL units. A NAL unit represents a packet which makes up of a certain number of bytes. The first byte of the NAL unit is called the header byte which indicates the data type of the NAL unit. The remaining bytes make up the payload data of the NAL unit. The NAL unit structure allows provision for different transport systems namely packet-oriented and bit stream-oriented. To cater for bit stream-oriented transport systems like MPEG-2, the NAL units are organized into byte stream format. These units are prefixed by a specific start code prefix of three bytes which is namely 0x000001. The start code prefix indicates and the start of each NAL units and hence defining the boundaries of the units. For packet-oriented transport systems, the encoded video data are transported via packets defined by transport protocols. Hence, the boundaries of the NAL units are known without having to include start code prefix byte. The details of packetization of NAL units will be discussed in later sections of the report. NAL units are further categorized into two types: * VCL unit: comprises of encoded video data à · Non-VCL unit: comprises of additional information like parameter sets which is the important header information. Also contains supplementary enhancement information (SEI) which contains the timing information and other data which increases the usability of the decoded video signal. Access units A group of NAL units which adhere to a certain form is called a access unit. When one access unit is decoded, one decoded picture is formed. In the table 1 below, the functions of the NAL units derived from the access units are explained. Data/Error robustness techniques H.264/AVC has several techniques to mitigate error/data loss which is an essential quality when it comes to streaming applications. The techniques are as follows: à · Parameter sets: contains information that is being applied to large number of VCL NAL units. It comprises of two kinds of parameter sets: Sequence Parameter set (SPS) : Information pertaining to sequence of encoded picture Picture Parameter Set (PPS) : Information pertaining to one or more individual pictures The above mentioned parameters hardly changes and hence it need not be transmitted repeatedly and saves overhead. The parameter sets can be sent ââ¬Å"in-bandâ⬠which is carried in the same channel as the VCL NAL units. It can also be sent ââ¬Å"out-of-bandâ⬠using reliable transport protocol. Therefore, it enhances the resiliency towards data and error loss. à · Flexible Macroblock Ordering (FMO) FMO maps the macroblocks to different slice groups. In the event of any slice group loss, missing data is masked up by interpolating from the other slice groups. à · Redundancy Slices (RS) Redundant representation of the picture can be stored in the redundant slices. If the loss of the original slice occurs, the decoder can make use of the redundant slices to recover the original slice. These techniques introduced in the H.264/AVC makes the codec more robust and resilient towards data and error loss. 2.1.2. Profiles and Levels A profile of a codec is defined as the set of features identified to meet a certain specifications of intended applications For the H.264/AVC codec, it is defined as a set of features identified to generate a conforming bit stream. A level is imposes restrictions on some key parameters of the bit stream. In H.264/AVC, there are three profiles namely: Baseline, Main and Extended. 5 shows the relationship between these profiles. The Baseline profile is most likely to be used by network cameras and encoders as it requires limited computing resources. It is quite ideal to make use of this profile to support real-time streaming applications in a embedded platform. 2.2. Overview of Video Streaming In previous systems, accessing video data across network exploit the ââ¬Ëdownload and play approach. In this approach, the client had to wait until the whole video data is downloaded to the media player before play out begins. To combat the long initial play out delay, the concept of streaming was introduced. Streaming allows the client to play out the earlier part of the video data whilst still transferring the remaining part of the video data. The major advantage of the streaming concept is that the video data need not be stored in the clients computer as compared to the traditional ââ¬Ëdownload and play approach. This reduces the long initial play out delay experienced by the client. Streaming adopts the traditional client/server model. The client connects to the listening server and request for video data. The server sends video data over to the client for play out of video data. 2.2.1. Types of Streaming There are three different types of streaming video data. They are pre-recorded/ file streaming, live/real-time streaming and interactive streaming. * Pre-recorded/live streaming: The encoded video is stored into a file and the system streams the file over the network. A major overhead is that there is a long initial play out delay (10-15s) experienced by the client. * Live/real-time streaming: The encoded video is streamed over the network directly without being stored into a file. The initial play out delay reduces. Consideration must be taken to ensure that play out rate does not exceed sending rate which may result in jerky the picture. On the other hand, if the sending rate is too slow, the packets arriving at the client may be dropped, causing in a freezing the picture. The timing requirement for the end-to-end delay is more stringent in this scenario. * Interactive streaming: Like live streaming, the video is streamed directly over the network. It responds to users control input such as rewind, pause, stop, play and forward the particular video stream. The system should respond in accordance to those inputs by the user. In this project, both pre-recorded and live streaming are implemented. Some functionality of interactive streaming controls like stop and play are also part of the system. 2.2.2. Video Streaming System modules Video Source The intent of the video source is to capture the raw video sequence. The CCTV camera is used as the video source in this project. Most cameras are of analogue inputs and these inputs are connected to the encoding station via video connections. This project makes use of only one video source due to the limitation of the video connections on the encoding station. The raw video sequence is then passed onto the encoding station. Encoding Station The aim of the encoding station digitized and encodes the raw video sequence into the desired format. In the actual system, the encoding is done by the DM6446 board into the H.264/AVC format. Since the hardware encoding is CPU intensive, this forms the bottleneck of the whole streaming system. The H.264 video is passed onto the video streamer server module of the system. Video Streaming and WebServer The role of the video streaming server is to packetize the H.264/AVC to be streamed over the network. It serves the requests from individual clients. It needs to support the total bandwidth requirements of the particular video stream requested by clients. WebServer offers a URL link which connects to the video streaming server. For this project, the video streaming server module is embedded inside DM6446 board and it is serves every individual clients requests. Video Player The video player acts a client connecting to and requesting video data from the video streaming server. Once the video data is received, the video player buffers the data for a while and then begins play out of data. The video player used for this project is the VideoLAN (VLC) Player. It has the relevant H.264/AVC codec so that it can decode and play the H264/AVC video data. 2.2.3. Unicast VS Multicast There are two key delivery techniques employed by streaming media distribution. Unicast transmission is the sending of data to one particular network destination host over a packet switched network. It establishes two way point-to-point connection between client and server. The client communicates directly with the server via this connection. The drawback is that every connection receives a separate video stream which uses up network bandwidth rapidly. Multicast transmission is the sending of only one copy of data via the network so that many clients can receive simultaneously. In video streaming, it is more cost effective to send single copy of video data over the network so as to conserve the network bandwidth. Since multicast is not connection oriented, the clients cannot control the streams that they can receive. In this project, unicast transmission is used to stream encoded video over the network. The client connects directly to the DM6446 board where it gets the encoded video data. The project can easily be extended to multicast transmission. 2.3. Streaming Protocols When streaming video content over a network, a number of network protocols are used. These protocols are well defined by the Internet Engineering Task Force (IETF) and the Internet Society (IS) and documented in Request for Comments (RFC) documents. These standards are adopted by many developers today. In this project, the same standards are also employed in order to successfully stream H.264/AVC content over a simple Local Area Network (LAN). The following sections will discuss about the various protocols that are studied in the course of this project. 2.3.1. Real-Time Streaming Protocol (RTSP) The most commonly used application layer protocol is RTSP. RTSP acts a control protocol to media streaming servers. It establishes connection between two end points of the system and control media sessions. Clients issue VCR-like commands like play and pause to facilitate the control of real-time playback of media streams from the servers. However, this protocol is not involved in the transport of the media stream over the network. For this project, RTSP version 1.0 is used. RTSP States Like the Hyper Text Transfer Protocol (HTTP), it contains several methods. They are OPTIONS, DESCRIBE, SETUP, PLAY, PAUSE, RECORD and TEARDOWN. These commands are sent by using the RTSP URL. The default port number used in this protocol is 554. An example of such as URL is: rtsp:// à · OPTIONS: An OPTIONS request returns the types of request that the server will accept. An example of the request is: OPTIONS rtsp://155.69.148.136:554/test.264 RTSP/1.0 CSeq: 1rn User-agent: VLC media Player The CSeq parameter keeps track of the number of request send to the server and it is incremented every time a new request is issued. The User-agent refers to the client making the request. * DESCRIBE: This method gets the presentation or the media object identified in the request URL from the server. An example of such a request: DESCRIBE rtsp://155.69.148.138:554/test.264 RTSP/1.0 CSeq: 2rn Accept: application/sdprn User agent: VLC media Player The Accept header is used to describe the formats understood by the client. All the initialization of the media resource must be present in the DESCRIBE method that it describes. à · SETUP: This method will specify the mode of transport mechanism to be used for the media stream. A typical example is: SETUP rtsp://155.69.148.138:554/test.264 RTSP/1.0 CSeq: 3rn Transport: RTP/AVP; unicast; client_port = 1200-1201 User agent: VLC media Player The Transport header specifies the transport mechanism to be used. In this case, real-time transport protocol is used in a unicast manner. The relevant client port number is also reflected and it is selected randomly by the server. Since RTSP is a stateful protocol, a session is created upon successful acknowledgement to this method. à · PLAY: This method request the server to start sending the data via the transport mechanism stated in the SETUP method. The URL is the same as the other methods except for: Session: 6 Range: npt= 0.000- rn The Session header specifies the unique session id. This is important as server may establish various sessions and this keep tracks of them. The Range header positions play time to the beginning and plays till the end of the range. * PAUSE: This method informs the server to pause sending of the media stream. Once the PAUSE request is sent, the range header will capture the position at which the media stream is paused. When a PLAY request is sent again, the client will resume playing from the current position of the media stream as specified in the range header. RSTP Status Codes Whenever the client sends a request message to the server, the server forms a equivalent response message to be sent to the client. The response codes are similar to HTTP as they are both in ASCII text. They are as follows: 200: OK 301: Redirection 405: Method Not Allowed 451: Parameter Not Understood 454: Session Not Found 457: Invalid Range 461: Unsupported Transport 462: Destination Unreachable These are some of the RTSP status codes. There are many others but the codes mentioned above are of importance in the context of this project. 2.3.2. Real-time Transport Protocol (RTP) RTP is a defined packet structure which is used for transporting media stream over the network. It is a transport layer protocol but developers view it as a application layer protocol stack. This protocol facilitates jitter compensation and detection of incorrect sequence arrival of data which is common for transmission over IP network. For the transmission of media data over the network, it is important that packets arrive in a timely manner as it is loss tolerant but not delay tolerant. Due to the high latency of Transmission Control Protocol in establishing connections, RTP is often built on top of the User Datagram Protocol (UDP). RTP also supports multicast transmission of data. RTP is also a stateful protocol as a session is established before data can be packed into the RTP packet and sent over the network. The session contains the IP address of the destination and port number of the RTP which is usually an even number. The following section will explain about the packet structure of RTP which is used for transmission. RTP Packet Structure The below shows a RTP packet header which is appended in front of the media data.s The minimum size of the RTP header is 12 bytes.. Optional extension information may be present after the header information. The fields of the header are: à · V: (2 bits) to indicate the version number of the protocol. Version used in this project is 2. à · P (Padding): (1 bit) to indicate if there padding which can be used for encryption algorithm à · X (Extension): (1 bit) to indicate if there is extension information between header and payload data. à · CC (CSRC Count) : (4 bits) indicates the number of CSRC identifiers à · M (Marker): (1 bit) used by application to indicate data has specific relevance in the perspective of the application. The setting for M bit marks the end of video data in this project à · PT (Payload Type): (7 bits) to indicate the type of payload data carried by the packet. H.264 is used for this project à · Sequence number: (16 bits) incremented by one for every RTP packet. It is used to detect packet loss and out of sequence packet arrival. Based on this information, application can take appropriate action to correct them. à · Time Stamp: (32 bits) receivers use this information to play samples at correct intervals of time. Each stream has independent time stamps. à · SSRC: (32 bits) it unique identifies source of the stream. à · CSRC: sources of a stream from different sources are enumerated according to its source IDs. This project does not involve the use of Extension field in the packet header and hence will not be explained in this report. Once this header information is appended to the payload data, the packet is sent over the network to the client to be played. The table below summarizes the payload types of RTP and highlighted region is of interest in this project. Table 2: Payload Types of RTP Packets 2.3.3. RTP Control Protocol (RTCP) RTCP is a sister protocol which is used in conjunction with the RTP. It provides out-of-band statistical and control information to the RTP session. This provides certain Quality of Service (QoS) for transmission of video data over the network. The primary functions of the RTCP are: * To gather statistical information about the quality aspect of the media stream during a RTP session. This data is sent to the session media source and its participants. The source can exploit this information for adaptive media encoding and detect transmission errors. * It provides canonical end point identifiers (CNAME) to all its session participants. It allows unique identification of end points across different application instances and serves as a third party monitoring tool. * It also sends RTCP reports to all its session participants. By doing so, the traffic bandwidth increases proportionally. In order to avoid congestion, RTCP has bandwidth management techniques to only use 5% of the total session bandwidth. RTCP statistical data is sent odd numbered ports. For instance, if RTP port number is 196, then RTCP will use the 197 as its port number. There is no default port number assigned to RTCP. RTCP Message Types RTCP sends several types of packets different from RTP packets. They are sender report, receiver report, source description and bye. à · Sender Report (SR): Sent periodically by senders to report the transmission and reception statistics of RTP packets sent in a period of time. It also includes the senders SSRC and senders packet count information. The timestamp of the RTP packet is also sent to allow the receiver to synchronize the RTP packets. The bandwidth required for SR is 25% of RTCP bandwidth. à · Receiver Report (RR): It reports the QoS to other receivers and senders. Information like highest sequence number received, inter arrival jitter of RTP packets and fraction of packets loss further explains the QoS of the transmitted media streams. The bandwidth required for RR is 75% of the RTCP bandwidth. à · Source Description (SDES): Sends the CNAME to its session participants. Additional information like name, address of the owner of the source can also be sent. à · End of Participation (BYE): The source sends a BYE message to indicate that it is shutting down the stream. It serves as an announcement that a particular end point is leaving the conference. Further RTCP Consideration This protocol is important to ensure that QoS standards are achieved. The acceptable frequencies of these reports are less than one minute. In major application, the frequency may increase as RTCP bandwidth control mechanism. Then, the statistical reporting on the quality of the media stream becomes inaccurate. Since there are no long delays introduced between the reports in this project, the RTCP is adopted to incorporate a certain level of QoS on streaming H.264/AVC video over embedded platform. 2.3.4. Session Description Protocol (SDP) The Session Description Protocol is a standard to describe streaming media initialization parameters. These initializations describe the sessions for session announcement, session invitation and parameter negotiation. This protocol can be used together with RTSP. In the previous sections of this chapter, SDP is used in the DESCRIBE state of RTSP to get sessions media initialization parameters. SDP is scalable to include different media types and formats. SDP Syntax The session is described by attribute/value pairs. The syntax of SDP are summarized in the below. In this project, the use of SDP is important in streaming as the client is VLC Media Player. If the streaming is done via RTSP, then VLC expects a sdp description from the server in order to setup the session and facilitate the playback of the streaming media. Chapter 3: Hardware Literature Review 3.1. Introduction to Texas Instrument DM6446EVM DavinciTM The development of this project based on the DM6446EVM board. It is necessary to understand the hardware and software aspects of this board. The DM6446 board has a ARM processor operating at a clock speed up to 300MHz and a C64x Digital Signal Processor operating at a clock speed of up to 600MHz. 3.1.1. Key Features of DM6446 The key features that are shown in the above are: * 1 video port which supports composite of S video * 4 video DAC outputs: component, RGB, composite * 256 MB of DDR2 DRAM * UART, Media Card interface (SD, xD, SM, MS ,MMC Cards) * 16 MB of non-volatile Flash Memory, 64 MB NAND Flash, 4 MB SRAM * USB2 interface * 10/100 MBS Ethernet interface * Configurable boot load options * IR Remote Interface, real time clock via MSP430 3.1.2. DM6446EVM Architecture The architecture of the DM6446 board is organized into several subsystems. By knowing the architecture of the DM6446, the developer can then design and built his application module on the boards underlining architecture. The shows that DM6446 has three subsystems which are connected to the underlying hardware peripherals. This provides a decoupled architecture which allows the developers to implement his applications on a particular subsystem without having to modify the other subsystems. Some of subsystems are discussed in the next sections. ARM Subsystem The ARM subsystem is responsible for the master control of the DM6446 board. It handles the system-level initializations, configurations, user interface, connectivity functions and control of DSP subsystems. The ARM has a larger program memory space and better context switching capabilities and hence it is more suited to handle complex and multi tasks of the system. DSP Subsystem The DSP subsystem is mainly the encoding the raw captured video frames into the desired format. It performs several number crunching operations in order to achieve the desired compression technique. It works together with the Video Imaging Coprocessor to compress the video frames. Video Imaging Coprocessor (VICP) The VICP is a signal processing library which contains various software algorithms that execute on VICP hardware accelerator. It helps the DSP by taking over computation of varied intensive tasks. Since hardware implementation of number cru
Wednesday, November 13, 2019
The Irreconcilable Donkeys and Elephants Essay --
The amber waves of grain sway in the wind. Majestic purple mountains rise like waves in the distance. The air is peaceful. The Articles of Confederation and the Constitution were the calm before the storm. Since the nineteenth century the two main political parties have been represented by the wrinkled elephant, and the furry donkey. Since the brawl began, it has never ceased. Is it a fight worth fighting? The elephants trunk crashes on the assââ¬â¢s disproportionate head. With a kick, the donkey springs backwards as the large beast crumples in agony. If I lived in the 1800s, near or far from the amber waves of grain, I would be neither a Republican or a Federalist. The Republicans and Federalists have too conflictual objectives to make peace. The ring of peace is a crucial goal for democracy. The bell of peace and liberty has ceased to ring, therefore I refuse to commit myself to a Federalist or Republican party. The battle will rage eternally. On September 17, 1787, when the Constitution was adopted immediately strife arose. The Republicans and Federalists disagreed about what power the Constitution should have, and how to interpret it. Alexander Hamilton believed in a strong federal government, he was a Federalist. Controversially, Thomas Jefferson, a Republican, demanded a small local government. In this scenario, I regard both varieties of government strength being equally necessary. Jefferson had a narrow interpretation the Constitution, and Hamilton interpreted with a broad meaning of every word. He argued that the Constitution created a government to solve national problems. Although, he only wanted to give power to federal government. (Center for Civic Education.) The Republicans and Federalists views clashed on how much c... ...ts will fight beyond the death. Tails will whip, and stripes will blow away in turmoil. Stars just might fall from the sky, too. If I lived in 1800s, I wouldnââ¬â¢t be a Republican or a Federalist. Two parties that just couldnââ¬â¢t agree, I find hard to trust or take part in. The new generation of elephants and donkeys has the same problem. It is ingrained into the genetics of government. Even with the disgust, monotonous fighting, and tension between political parties we all fight for pursuing happiness. An ââ¬Å"inalienable rightâ⬠, as spoken by John Locke. There is yet another thing the elephants and donkeys agree on: where they fight is a pretty amazing culture and place. America has billions of flaws, but weââ¬â¢re doing a lot of things right, too. Everyoneââ¬â¢s too caught up in conflicts to appreciate the amber waves of grain, the fruited plains, and the shining seas.
Subscribe to:
Posts (Atom)