Software Implementation of an MPEG-4 Part 10 (H.264/AVC) Video Encoder for Embedded Systems

Total Page:16

File Type:pdf, Size:1020Kb

Software Implementation of an MPEG-4 Part 10 (H.264/AVC) Video Encoder for Embedded Systems Software implementation of an MPEG-4 Part 10 (H.264/AVC) video encoder for embedded systems Antonio´ Manuel da Costa Rodrigues Dissertac¸ao˜ para obtenc¸ao˜ do Grau de Mestre em Engenharia Electrotecnica´ e de Computadores J ´uri Presidente: Doutor Marcelino Bicho dos Santos Orientador: Doutor Nuno Filipe Valentim Roma Co-orientador: Doutor Leonel Augusto Pires Seabra de Sousa Vogal: Doutor Paulo Luis Serras Lobato Correia Outubro de 2010 Acknowledgments I would like to thank my supervisor, Dr Nuno Roma for his assistance and guidance throughout this project. On a personal note I would thank to all people around me for the support and patience. Abstract In the last few years there has been a general proliferation of advanced video services and mul- timedia applications, where video compression standards, such as MPEG-x or H.26x, have been developed to store and broadcast video information in the digital form. Among such video stan- dards, the MPEG-4 Part 10 (also known as H.264/AVC) was recently released and has proved to provide particular advantages, when compared with the previous video standards (such as MPEG-1, MPEG-2, etc.), in what concerns the obtained encoding efficiency and video quality performances. In the other hand, to achieve such encoding efficiency and quality, the computa- tional complexity of the encoder has increased exponentially. At the same time, processor industries have already been taking multi-core solutions (multiple processors units on a die) to answer to a growing speedup demand. This dissertation presents a multi-core solution of the encoder H.264 software (programmed in C - http://iphome.hhi.de/suehring/tml/download/old jm/ version 14.0) to speedup the processing time but keeping the efficiency and quality performances. Some restrictions have been imposed to reduce the processing dependencies and increase the level of parallelism at frame level. For ex- ample, the picture and macroblock interlace, rate distortion optimization and rate control modules were disabled. Through several simulations, the results indicate that the developed architectures are capable to speed up the elapsed time in the processing. Keywords Multicore, H.264/AVC, Parallelism, Video encoding, Speedup iii Resumo Nos ultimos´ anos tem-se assistido a` proliferac¸ao˜ de servic¸os avanc¸ados de v´ıdeo e aplicac¸oes˜ multimedia,´ onde os standards de compressao˜ de v´ıdeo, tais como MPEG-x ou H.26x, temˆ sido desenvolvidos para armazenamento e difusao˜ de v´ıdeo em formato digital. Entre essas normas, o MPEG-4 Part 10 (tambem´ conhecido como H.264/AVC) foi lanc¸ado recentemente e provou ter vantagens, comparadas com as versoes˜ anteriores (tais como MPEG-1, MPEG-2, etc.), no que diz respeito a` obtenc¸ao˜ de uma codificac¸ao˜ eficiente e uma boa qualidade de v´ıdeo. Por outro lado, para atingir tal eficienciaˆ e qualidade, a complexidade computacional do codificador aumentou exponencialmente. Ao mesmo tempo, as industrias´ de processadores comec¸aram a optar por soluc¸oes˜ multicore (multiplos´ processadores no mesmo chip) para responder a` crescente necessidade de proces- sadores mais rapidos.´ Esta dissertac¸ao˜ apresenta uma soluc¸ao˜ multi-core para o software do codificador H.264 (programado em C - http://iphome.hhi.de/suehring/tml/download/old jm/ version 14.0) que visa o aumento da velocidade de processamento mantendo a eficienciaˆ e a qualidade. Algumas restric¸oes˜ foram impostas para reduzir as dependenciasˆ a n´ıvel do processamento e aumentar o paralelismo a n´ıvel da frame. Por exemplo, os modulos´ de picture and macroblock interlace, rate distortion optimization e rate control foram desactivados. Atraves´ de varias´ simulac¸oes,˜ os resultados indicaram que as arquitecturas desenvolvidas sao˜ capazes de aumentar a velocidade de processamento. Palavras Chave Multicore, H.264/AVC, Paralelismo, Codificac¸ao˜ de V´ıdeo, Aumento da Velocidade v Contents 1 Introduction 1 1.1 Motivation ......................................... 2 1.2 Requirements ....................................... 3 1.3 Objectives ......................................... 3 1.4 Main contributions .................................... 4 1.5 Dissertation Outline ................................... 4 2 Video Coding 5 2.1 Principles of Video Compression ............................ 6 2.1.1 Reduction of Irrelevancies ............................ 6 2.1.2 Spatial Redundancy ............................... 8 2.1.3 Temporal Redundancy .............................. 8 2.1.4 Comparison Metrics ............................... 10 2.2 H.264 Standard ...................................... 11 2.2.1 H.264 Profiles and Levels ............................ 11 2.2.2 H.264 Encoding Loop .............................. 12 2.2.2.A Flexible Macroblock Order and Arbitrary Slice Order ........ 13 2.2.2.B Intra Prediction ............................. 14 2.2.2.C Inter Prediction ............................. 15 2.2.2.D Transform & Quantization ....................... 17 2.2.2.E Entropy Coding ............................ 20 2.2.2.F In-loop Deblocking Filter ....................... 22 2.2.2.G Interpolation Block ........................... 25 2.2.2.H Network Abstraction Layer ...................... 26 2.2.3 H.264 Profiling .................................. 27 3 Multiprocessor Architectures 29 3.1 Classification of Parallel Processor Systems ...................... 30 3.2 Symmetric Shared-Memory Multiprocessor ...................... 31 3.2.1 Cache Coherency ................................ 33 vii Contents 3.2.1.A Software Solution ........................... 34 3.2.1.B Hardware Solution ........................... 34 3.3 Non-Uniform Memory Access .............................. 37 3.4 Communication Mechanisms .............................. 38 3.5 Synchronization ..................................... 42 3.5.1 Software Locks .................................. 43 3.5.2 Hardware Locks ................................. 43 3.6 Data Parallelism and Programming Languages .................... 43 3.6.1 MPI - Message Programming Interface .................... 44 3.6.2 POSIX Threads .................................. 44 3.6.3 OpenMP ..................................... 45 3.6.4 CUDA and OpenCL ............................... 46 4 Related work 47 4.1 Parallelizing the H.264 Decoder ............................. 48 4.2 Parallelizing the H.264 Encoder ............................. 49 4.3 Other Proposed Parallel Solutions ........................... 52 5 Open Platform for Parallel H.264 Video Encoding 53 5.1 Assumptions ....................................... 55 5.2 Structures Redesign and Code Improvements ..................... 57 5.2.1 Transform & Quantization ............................ 59 5.2.2 Intra Prediction .................................. 60 5.2.3 Inter Prediction .................................. 61 5.2.4 Deblocking Filter ................................. 61 5.2.5 Interpolation ................................... 61 5.2.6 Data Parallelization - SIMD Instructions .................... 62 5.3 Levels of Parallelism in H.264 Encoding ........................ 63 5.4 Heterogeneous vs Homogeneous Multi-core Platform ................ 65 5.5 Slice Definition ...................................... 65 5.6 Data Partitioning ..................................... 66 5.7 Parallel Programming of H.264 Video Encoders .................... 67 5.7.1 Parallel Encoding of Intra Type Frames ..................... 68 5.7.2 Parallel the Encoding of Inter Type Frames .................. 69 5.7.3 Increasing the Slice-level Scalability ...................... 73 6 Results 77 6.1 Frame Partition and Memory Consumption ...................... 80 viii Contents 6.2 Architectures Comparison ................................ 80 6.2.1 Full Pipeline Architecture ............................ 81 6.2.2 Mixed Parallel Architecture ........................... 83 6.2.3 Full Parallel Architecture ............................. 83 6.2.4 Discussion .................................... 84 6.3 Comparison Between Slice-level and Macroblock-level Parallelism ......... 85 7 Conclusions 89 7.1 Summary ......................................... 90 7.2 Result’s Analysis ..................................... 90 7.3 Future Work ........................................ 91 8 Bibliography 93 A Architecture Results 99 A.1 Full pipeline architecture ................................. 100 A.2 Mixed parallel architecture ................................ 104 A.3 Full parallel architecture ................................. 107 ix Contents x List of Figures 2.1 Different sampling patterns. ............................... 7 2.2 Difference between two consecutive frames. Figure c was enhanced so the differ- ences can be noticed. .................................. 8 2.3 Example of an interframe prediction using BMA. ................... 9 2.4 Main features supported by each of the H.264 profiles. ................ 11 2.5 H.264 encoder block diagram. .............................. 12 2.6 Different slice group maps, supported in the H.264. .................. 14 2.7 Directions available for Intra prediction in H.264. ................... 15 2.8 Supported modes in INTRA-4x4 prediction. ...................... 15 2.9 INTRA-16 × 16 supported modes. ............................ 16 2.10 Possible partitions of a macroblock in H.264 Inter prediction. ............ 16 2.11 Prediction types: (a) Type P; (b) Type P and B - presentation order; (c) Type P and B - codification order. ................................... 17 2.12 Usage of multiple reference frames in Inter prediction. ...............
Recommended publications
  • Technical Standard
    Technical Standard X/Open Curses, Issue 7 The Open Group ©November 2009, The Open Group All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, without the prior permission of the copyright owners. Technical Standard X/Open Curses, Issue 7 ISBN: 1-931624-83-6 Document Number: C094 Published in the U.K. by The Open Group, November 2009. This standardhas been prepared by The Open Group Base Working Group. Feedback relating to the material contained within this standardmay be submitted by using the web site at http://austingroupbugs.net with the Project field set to "Xcurses Issue 7". ii Technical Standard 2009 Contents Chapter 1 Introduction........................................................................................... 1 1.1 This Document ........................................................................................ 1 1.1.1 Relationship to Previous Issues ......................................................... 1 1.1.2 Features Introduced in Issue 7 ........................................................... 2 1.1.3 Features Withdrawn in Issue 7........................................................... 2 1.1.4 Features Introduced in Issue 4 ........................................................... 2 1.2 Conformance............................................................................................ 3 1.2.1 Base Curses Conformance .................................................................
    [Show full text]
  • Synchronizing Threads with POSIX Semaphores
    3/17/2016 POSIX Semaphores Synchronizing Threads with POSIX Semaphores 1. Why semaphores? 2. Posix semaphores are easy to use sem_init sem_wait sem_post sem_getvalue sem_destroy 3. Activities 1 2 Now it is time to take a look at some code that does something a little unexpected. The program badcnt.c creates two new threads, both of which increment a global variable called cnt exactly NITER, with NITER = 1,000,000. But the program produces unexpected results. Activity 1. Create a directory called posixsem in your class Unix directory. Download in this directory the code badcnt.c and compile it using gcc badcnt.c -o badcnt -lpthread Run the executable badcnt and observe the ouput. Try it on both tanner and felix. Quite unexpected! Since cnt starts at 0, and both threads increment it NITER times, we should see cnt equal to 2*NITER at the end of the program. What happens? Threads can greatly simplify writing elegant and efficient programs. However, there are problems when multiple threads share a common address space, like the variable cnt in our earlier example. To understand what might happen, let us analyze this simple piece of code: THREAD 1 THREAD 2 a = data; b = data; a++; b--; data = a; data = b; Now if this code is executed serially (for instance, THREAD 1 first and then THREAD 2), there are no problems. However threads execute in an arbitrary order, so consider the following situation: Thread 1 Thread 2 data a = data; --- 0 a = a+1; --- 0 --- b = data; // 0 0 --- b = b + 1; 0 data = a; // 1 --- 1 --- data = b; // 1 1 So data could end up +1, 0, -1, and there is NO WAY to know which value! It is completely non- deterministic! http://www.csc.villanova.edu/~mdamian/threads/posixsem.html 1/4 3/17/2016 POSIX Semaphores The solution to this is to provide functions that will block a thread if another thread is accessing data that it is using.
    [Show full text]
  • Openextensions POSIX Conformance Document
    z/VM Version 7 Release 1 OpenExtensions POSIX Conformance Document IBM GC24-6298-00 Note: Before you use this information and the product it supports, read the information in “Notices” on page 73. This edition applies to version 7, release 1, modification 0 of IBM z/VM (product number 5741-A09) and to all subsequent releases and modifications until otherwise indicated in new editions. Last updated: 2018-09-12 © Copyright International Business Machines Corporation 1993, 2018. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents List of Tables........................................................................................................ ix About This Document............................................................................................xi Intended Audience......................................................................................................................................xi Conventions Used in This Document.......................................................................................................... xi Where to Find More Information.................................................................................................................xi Links to Other Documents and Websites.............................................................................................. xi How to Send Your Comments to IBM....................................................................xiii Summary of Changes for z/VM
    [Show full text]
  • So You Think You Know C? [Pdf]
    So You Think You Know C? And Ten More Short Essays on Programming Languages by Oleksandr Kaleniuk Published in 2020 This is being published under the Creative Commons Zero license. I have dedicated this work to the public domain by waiving all of my rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law. You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission. Table of Contents Introduction......................................................................................................... 4 So you think you know C?..................................................................................6 APL deserves its renaissance too.......................................................................13 Going beyond the idiomatic Python..................................................................30 Why Erlang is the only true computer language................................................39 The invisible Prolog in C++..............................................................................43 One reason you probably shouldn’t bet your whole career on JavaScript.........54 You don't have to learn assembly to read disassembly......................................57 Fortran is still a thing........................................................................................64 Learn you a Lisp in 0 minutes...........................................................................68 Blood, sweat,
    [Show full text]
  • Software Engineering Standards Introduction
    6/21/2008 Software Engineering Standards Introduction 1028 9126 730 12207 9000 CMM 15288 CMMI J-016 1679 Outline 1. Definitions 2. Sources of Standards 3. Why Use Standards ? 4. ISO and Software Engineering Standards 5. IEEE Software Engineering Collection Sources: IEEE Standards, Software Engineering, Volume Three: Product Standards, Introduction to the1999 Edition, pages i to xxiii. Horch, J., ‘Practical Guide to Software Quality management’, Artech House, 1996, chap 2. Wells, J., ‘An Introduction to IEEE/EIA 12207’, US DoD, SEPO, 1999. Moore, J., ‘Selecting Software Engineering Standards’, QAI Conference, 1998. Moore, J., ‘The Road Map to Software Engineering: A Standards-Based Guide’, Wiley-IEEE Computer Society Press, 2006. Moore, J.,’An Integrated Collection of Software Engineering Standards’, IEEE Software, Nov 1999. Gray, L., ‘Guidebook to IEEE/EIA 12207 Standard for Information Technology, Software Life Cycle Processes’, Abelia Corporation, Fairfax, Virginia, 2000. Coallier, F.; International Standardization in Software and Systems Engineering, Crosstalk, February 2003, pp. 18-22. 6/21/2008 2 1 6/21/2008 Exemple d’un système complexe Système de transport aérien Système de transport Système de Transport Aérien terrestre Système de Système de gestion du trafic réservation aérien Système Système aéroportuaire de distribution du kérosène SystèmeSystème avionique avion Système de Système de gestion de la Structure vie à bord SystèmeSystème de de équipage propulsionpropulsion Système SystèmeNavigation de de SystèmeVisualisation Système de navigationsystem de visualisation contrôle de vol SystèmeSystème de de réception réception Système de GPSGPS transport terrestremaritime 6/21/2008 3 Toward a Software Engineering Profession • What does it take ? 1. Body of Knowledge (e.g. SWEBOK) 2.
    [Show full text]
  • JTC1 and SC22 - Terminology
    JTC1 AD Hoc Terminology, August 2005 1 JTC1 and SC22 - Terminology Background Following my offer to collect together the definitions from SC22 standards, SC22 accepted my offer and appointed me as its terminology representative (I was later also asked to represent UK and BSI) on the JTC1 ad hoc group on terminology. These notes summarise the results of collecting the SC22 definitions, and my impressions of the JTC1 ad hoc group. Roger Scowen August 2005 A collection of definitions from SC22 standards SC22 asked me to prepare a collected terminology for SC22 containing the definitions from standards for which SC22 is responsible, and asked the project editors to send me the definitions in text form. Many, but not all, project editors did so. However there are sufficient for SC22 to judge whether to complete the list or abandon it as an interesting but unprofitable exercise. Adding definitions to the database The project editor of a standard typically sends the definitions from the standard as a Word file, but it may be plain text or in Latex or nroff format. These definitions are transformed into a uniform format by a series of global ‘find & replace’ operations to produce a Word file where each definition is represented as a row of a table with three columns: the term, its definition, and any notes and/or examples. It is often easier to check this has been accomplished by copying and pasting successive attempts into Excel than examining the Word file itself. Sometimes there are special cases such as exotic characters (for example Greek or mathematical characters), special fonts, illustrations, diagrams, or tables.
    [Show full text]
  • File Systems: Semantics & Structure What Is a File
    5/15/2017 File Systems: Semantics & Structure What is a File 11A. File Semantics • a file is a named collection of information 11B. Namespace Semantics • primary roles of file system: 11C. File Representation – to store and retrieve data – to manage the media/space where data is stored 11D. Free Space Representation • typical operations: 11E. Namespace Representation – where is the first block of this file 11L. Disk Partitioning – where is the next block of this file 11F. File System Integration – where is block 35 of this file – allocate a new block to the end of this file – free all blocks associated with this file File Systems Semantics and Structure 1 File Systems Semantics and Structure 2 Data and Metadata Sequential Byte Stream Access • File systems deal with two kinds of information int infd = open(“abc”, O_RDONLY); int outfd = open(“xyz”, O_WRONLY+O_CREATE, 0666); • Data – the contents of the file if (infd >= 0 && outfd >= 0) { – e.g. instructions of the program, words in the letter int count = read(infd, buf, sizeof buf); Metadata – Information about the file • while( count > 0 ) { e.g. how many bytes are there, when was it created – write(outfd, buf, count); sometimes called attributes – count = read(infd, inbuf, BUFSIZE); • both must be persisted and protected } – stored and connected by the file system close(infd); close(outfd); } File Systems Semantics and Structure 3 File Systems Semantics and Structure 4 Random Access Consistency Model void *readSection(int fd, struct hdr *index, int section) { struct hdr *head = &hdr[section];
    [Show full text]
  • Comparative Analysis of Distributed and Parallel File Systems' Internal Techniques
    Comparative Analysis of Distributed and Parallel File Systems’ Internal Techniques Viacheslav Dubeyko Content 1 TERMINOLOGY AND ABBREVIATIONS ................................................................................ 4 2 INTRODUCTION......................................................................................................................... 5 3 COMPARATIVE ANALYSIS METHODOLOGY ....................................................................... 5 4 FILE SYSTEM FEATURES CLASSIFICATION ........................................................................ 5 4.1 Distributed File Systems ............................................................................................................................ 6 4.1.1 HDFS ..................................................................................................................................................... 6 4.1.2 GFS (Google File System) ....................................................................................................................... 7 4.1.3 InterMezzo ............................................................................................................................................ 9 4.1.4 CodA .................................................................................................................................................... 10 4.1.5 Ceph.................................................................................................................................................... 12 4.1.6 DDFS ..................................................................................................................................................
    [Show full text]
  • OSE/RM Model Specification on a Basis the Reference Models of the Internet of Things
    OSE/RM model specification on a basis the reference models of the Internet of things A.V. Boichenko PhD, Plekhanov Russian Academy of Economics, tel +7 916 624 267, [email protected],[email protected] V.A. Kazakov PhD, Plekhanov Russian Academy of Economics, tel. 8-903-148-10-44 [email protected] O.V. Lukinova, Doctor of Engineering, Trapeznikov Institute of control sciences of Russian Academy of Sciences, tel. 916-707-13-90 [email protected] Abstract. In work the specification in projects the Internet of Things standard- ized reference model of the environment of the open systems OSE/RM (Open System Environment/Reference Model) on a basis the reference models of the Internet of things is considered. Also use of the OSE/RM model in integration projects of the Internet of things on the basis of the European interoperability framework EIF (European Interoperability Framework) is considered. Keywords: Internet of things, reference models of the Internet of things, refer- ence model of the environment of the open OSE/RM systems, integration Inter- net of things, European interoperability framework of EIF. Within the last several decades in world practice of system and program engineer- ing at design of information systems the referensy model of the environment of open systems was widely used (in the Russian practice, unfortunately, significantly more rare) OSE/RM (Open System Environment / Reference Model). This model describes basic functionality of any information system. The main maintenance of this model is described in the document ISO/IEC TR 14252:1996 Information technology – Guide to the POSIX Open System Environment (OSE) [1].
    [Show full text]
  • The POSIX Family of Standards
    ★ ★ ★ SUPPORTING ARTICLE ★ The POSIX Family of Standards Stephen R. Walli OSIX is a family of IEEE standards that SRW SOFTWARE, KITCHENER, ONT. supports portable programming. There are actually more than 20 standards and ■ draft documents under the POSIX umbrel- The IEEE POSIX family of standards la, at different stages in the standards de- has been developing since 1988, when velopment process. In this article each the original base system interface stan- piece of work will be referred to as “POSIX.n,” with “n” denoting the docu- dard was ratified. Having been at the ment or its working group, and enough core of a number of vendor-based con- other context will be given to identify the work being discussed. If the document is sortia specifications, largely due to U.S. a completed formal standard, its official government support in purchasing, it is number will be cited. Official numbers widely implemented. P look like “IEEE Std 1003.n-yyyy,” where 1003 is the IEEE POSIX project, “n” de- Despite its history, POSIX still suffers notes the document, and “yyyy” is the from a misunderstood scope, bad press, and an year the standard was completed or last amended. The term “POSIX” is really quite vague, which apparent lack of use. However, when POSIX is probably contributes to the confusion surrounding viewed as a programmer’s specification and simple the standards. To some it’s the POSIX.1 system inter- explanations for using specific POSIX standards are face standard; to others it’s the POSIX.1 standard plus the POSIX.2 shell and utilities standard.
    [Show full text]
  • Code Generation for the MPEG Reconfigurable Video Coding
    Code generation for the MPEG Reconfigurable Video Coding framework: From CAL actions to C functions Matthieu Wipliez, Ghislain Roquier, Mickael Raulet, Jean François Nezan, Olivier Déforges To cite this version: Matthieu Wipliez, Ghislain Roquier, Mickael Raulet, Jean François Nezan, Olivier Déforges. Code generation for the MPEG Reconfigurable Video Coding framework: From CAL actions to Cfunc- tions. Multimedia and Expo, (ICME) 2008 IEEE International Conference on, Jun 2008, Hannover, Germany. pp.1049 - 1052, 10.1109/ICME.2008.4607618. hal-00336487 HAL Id: hal-00336487 https://hal.archives-ouvertes.fr/hal-00336487 Submitted on 4 Nov 2008 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. CODE GENERATION FOR THE MPEG RECONFIGURABLE VIDEO CODING FRAMEWORK: FROM CAL ACTIONS TO C FUNCTIONS Matthieu Wipliez, Ghislain Roquier, Mickael¨ Raulet, Jean-Franc¸ois Nezan, Olivier Deforges´ IETR laboratory, UMR CNRS 6164, Image and Remote Sensing Group INSA de Rennes, 20 Avenue des Buttes de Coesmes,¨ 35043 RENNES Cedex, FRANCE Contacts: fmwipliez, groquier, mraulet, jnezan, [email protected] ABSTRACT algorithms, features that are necessary to be exploited for The MPEG Reconfigurable Video Coding (RVC) framework efficient implementations. In the meanwhile the growth of aims to provide a unified specification of all video technol- video coding technologies leads to solutions that are increas- ogy.
    [Show full text]
  • List of the ISO/IEC Standards to Be Used for the JTC1 Market Trial
    List of the ISO/IEC standards to be used for the JTC1 Market Trial Standard Title Stage ISO/IEC 1539-1:1997 Information technology - Programming languages - Fortran - Part 1: Base language ISO/IEC 1539-2:2000 Information technology -- Programming languages -- Fortran -- Part 2: Varying length character strings ISO/IEC 1539-3:1999 Information technology - Programming languages - Fortran - Part 3: Conditional compilation ISO/IEC 1989:2002 Information technology - Programming languages - COBOL ISO/IEC 6937:2001 Information technology - Coded graphic character set for text communication - Latin alphabet ISO/IEC 7816-1:1998 Identification cards - Integrated circuit(s) cards with contacts - Part 1: Physical characteristics ISO/IEC 7816-2:1999 Information technology - Identification cards - Integrated circuit(s) cards with contacts - Part 2: Dimensions and location of the contacts ISO/IEC 7816-3:1997 Information technology - Identification cards - Integrated circuit(s) cards with contacts - Part 3: Electronic signals and transmission protocols ISO/IEC 7816-4:1995 Information technology - Identification cards - Integrated circuit(s) cards with contacts - Part 4: Interindustry commands for interchange ISO/IEC 7816-5/AMD1:1996 Amendment 1 to ISO/IEC 7816-5: 1994 ISO/IEC 7816-5:1994 Identification cards - Integrated circuit(s) cards with contacts - Part 5: Numbering system and registration procedure for application identifiers ISO/IEC 7816-6/Amd1:2000 IC manufacturer registration ISO/IEC 7816-6:1996 Identification cards - Integrated circuit(s) cards
    [Show full text]