Communicating pictures: delivery across networks
David R. Bull, Fan Zhang, in Intelligent Image and Video Compression (Second Edition), 2021
11.5.7 Redundant motion vectors
Many of the error resilience tools present in H.264/AVC have been omitted in subsequent standards. Carreira et al. [19] exposed the increased susceptibility of H.265/HEVC coded streams to network errors and proposed a two-stage approach which limited temporal error propagation following frame loss. Firstly, at the encoder, reference pictures are selected dynamically, using Lagrangian optimization to ensure that the number of prediction units that depend on a single reference is reduced. Secondly, they employ motion vector prioritization, based on spatial dependencies, to select an optimal subset of redundant motion vectors to transmit as side information. These results indicate significant reductions in temporal error propagation, achieving total quality gains up to 5 dB for 10% of packet loss ratio for only a small increase in motion overhead.
Read full chapter
URL:
https://www.sciencedirect.com/science/article/pii/B9780128203538000207
Resilience in next-generation embedded systems*
E. Cheng, S. Mitra, in Rugged Embedded Systems, 2017
1 Introduction
This chapter addresses the cross—layer resilience challenge for designing rugged embedded systems: given a set of resilience techniques at various abstraction layers (circuit, logic, architecture, software, algorithm), how does one protect a given design from radiation-induced soft errors using (perhaps) a combination of these techniques, across multiple abstraction layers, such that overall soft error resilience targets are met at minimal costs (energy, power, execution time, area)? Specific soft error resilience targets include: silent data corruption (SDC), where an error causes the system to output an incorrect result without error indication; and detected but uncorrected error (DUE), where an error is detected (e.g., by a resilience technique or a system crash or hang) but is not recovered automatically without user intervention.
The need for cross—layer resilience, where multiple error resilience techniques from different layers of the system stack cooperate to achieve cost-effective error resilience, is articulated in several publications (e.g., Refs. [1–7]).
There are numerous publications on error resilience techniques, many of which span multiple abstraction layers. These publications mostly describe specific implementations. Examples include structural integrity checking [8] and its derivatives (mostly spanning architecture and software layers) or the combined use of circuit hardening, error detection (e.g., using logic parity checking and residue codes), and instruction-level retry [9–11] (spanning circuit, logic, and architecture layers). Cross-layer resilience implementations in commercial systems are often based on “designer experience” or “historical practice.” There exists no comprehensive framework to systematically address the cross-layer resilience challenge. Creating such a framework is difficult. It must encompass the entire design flow end-to-end, from comprehensive and thorough analysis of various combinations of error resilience techniques all the way to layout-level implementations, such that one can (automatically) determine which resilience technique or combination of techniques (either at the same abstraction layer or across different abstraction layers) should be chosen. However, such a framework is essential in order to answer important cross-layer resilience questions such as:
- 1.
-
Is cross-layer resilience the best approach for achieving a given resilience target at low cost?
- 2.
-
Are all cross-layer solutions equally cost-effective? If not, which cross-layer solutions are the best?
- 3.
-
How do cross-layer choices change depending on application-level energy, latency, and area constraints?
- 4.
-
How can one create a cross-layer resilience solution that is cost-effective across a wide variety of application workloads?
- 5.
-
Are there general guidelines for new error resilience techniques to be cost-effective?
CLEAR (cross-layer exploration for architecting resilience) is a first of its kind framework, which addresses the cross-layer resilience challenge. In this chapter, the focus is on the use of CLEAR for harsh-environment-capable embedded systems that operate in the presence of radiation-induced soft errors in terrestrial settings; however, other error sources (voltage noise and circuit-aging) may be incorporated into CLEAR as well.
Although the soft error rate of an SRAM cell or a flip-flop stays roughly constant or even decreases over technology generations, the system-level soft error rate increases with increased integration [12–14]. Moreover, soft error rates can increase when lower supply voltages are used to improve energy efficiency [15,16]. The chapter focuses on flip—flop soft errors because design techniques to protect them are generally expensive. Coding techniques are routinely used for protecting on-chip memories. Combinational logic circuits are significantly less susceptible to soft errors and do not pose a concern [14,17]. Both single-event upsets (SEUs) and single-event multiple upsets (SEMUs) [16,18] are considered. While CLEAR can address soft errors in various digital components of a complex System-on-a-Chip (including uncore components [19] and hardware accelerators), a detailed analysis of soft errors in all these components is beyond the scope of this chapter. Hence, this chapter will focus on soft errors in processor cores.
To demonstrate the effectiveness and practicality of CLEAR, an exploration of 586 cross-layer combinations using ten representative error detection/correction techniques and four hardware error recovery techniques is conducted. These techniques span various layers of the system stack: circuit, logic, architecture, software, and algorithm (Fig. 1). This extensive cross-layer exploration encompasses over nine million flip-flop soft error injections into two diverse processor core architectures (Table 1): a simple, in-order SPARC Leon3 core (InO—core) and a complex, superscalar, out-of-order Alpha IVM core (OoO—core), across 18 benchmarks: SPECINT2000 [37] and DARPA PERFECT [38]. Such extensive exploration enables conclusive answers to the above cross-layer resilience questions:
Fig. 1. CLEAR Framework: (A) BEE3 emulation cluster/Stampede supercomputer injects over nine million errors into two diverse processor architectures running 18 full-length application benchmarks. (B) Accurate physical design evaluation accounts for resilience overheads. (C)Comprehensive resilience library consisting of ten error detection/correction techniques + four hardware error recovery techniques. (D) Example illustrating thorough exploration of 586 cross-layer combinations with varying energy costs vs percentage of SDC-causing errors protected.
Table 1. Processor Designs Studied
Core | Design | Description | Clk. Freq. | Error Injections | Instructions Per Cycle |
---|---|---|---|---|---|
InO | Leon3 [35] | Simple, in-order (1250 flip-flops) | 2.0 GHz | 5.9 million | 0.4 |
OoO | IVM [36] | Complex, superscalar, out-of-order (13,819 flip-flops) | 600 MHz | 3.5 million | 1.3 |
- 1.
-
For a wide range of error resilience targets, optimized cross-layer combinations can provide low-cost solutions for soft errors.
- 2.
-
Not all cross-layer solutions are cost-effective.
- a.
-
For general-purpose processor cores, a carefully optimized combination of selective circuit-level hardening, logic-level parity checking, and micro-architectural recovery provides a highly effective cross-layer resilience solution. For example, a 50 × SDC improvement (defined in Section 2.1) is achieved at 2.1% and 6.1% energy costs for the OoO- and InO-cores, respectively. The use of selective circuit-level hardening and logic-level parity checking is guided by a thorough analysis of the effects of soft errors on application benchmarks.
- b.
-
When the application space can be restricted to matrix operations, a cross-layer combination of algorithm-based fault tolerance (ABFT) correction, selective circuit-level hardening, logic-level parity checking, and micro-architectural recovery can be highly effective. For example, a 50 × SDC improvement is achieved at 1.9% and 3.1% energy costs for the OoO- and InO-cores, respectively. But, this approach may not be practical for general-purpose processor cores targeting general applications.
- c.
-
Selective circuit-level hardening, guided by a thorough analysis of the effects of soft errors on application benchmarks, provides a highly effective soft error resilience approach. For example, a 50 × SDC improvement is achieved at 3.1% and 7.3% energy costs for the OoO- and InO-cores, respectively.
- 3.
-
The above conclusions about cost-effective soft error resilience techniques largely hold across various application characteristics (e.g., latency constraints despite errors in soft real-time applications).
- 4.
-
Selective circuit-level hardening (and logic-level parity checking) techniques are guided by the analysis of the effects of soft errors on application benchmarks. Hence, one must address the challenge of potential mismatch between application benchmarks vs applications in the field, especially when targeting high degrees of resilience (e.g., 10 × or more SDC improvement). This challenge is overcome using various flavors of circuit-level hardening techniques (details in Section 4).
- 5.
-
Cost-effective resilience approaches discussed earlier provide bounds that new soft error resilience techniques must achieve to be competitive. It is, however, crucial that the benefits and costs of new techniques are evaluated thoroughly and correctly.
Read full chapter
URL:
https://www.sciencedirect.com/science/article/pii/B9780128024591000105
Error Concealment Using Motion Field Interpolation
Mohammed Ebrahim Al-Mualla, … David R. Bull, in Video Coding for Mobile Communications, 2002
10.1 Overview
Chapter 9 discussed three categories of error-resilience techniques: forward, postprocessing (or concealment), and interactive techniques. Almost all forward techniques increase the bit rate because they work by adding redundancy to the data, e.g., FEC. Some of them may also require modifications to the encoder, e.g., layered coding, and others may not be suitable for some applications, e.g., multiple description coding assumes several parallel channels between transmitter and receiver. Most interactive techniques depend on a feedback channel between the encoder and decoder. Such a channel may not be available in some applications, e.g., multipoint broadcasting. Most interactive techniques will also introduce some delay and may, therefore, be unsuitable for real-time applications like mobile video communication. On the other hand, concealment techniques do not increase the bit rate, do not require any modifications to the encoder, do not introduce any delay, and can be applied in almost any application. This makes them a very attractive choice for mobile video communication, where bit rate and delay are very critical issues.
A very successful class of error concealment is temporal error concealment. Conventional temporal concealment techniques estimate one concealment displacement for the whole damaged block and then use translational displacement compensation to conceal the block from a reference frame. The main problem with such techniques is that incorrect estimation of the concealment displacement can lead to poor concealment of the whole or most of the block.
This chapter describes the design of two novel temporal concealment techniques. In the first technique, motion field interpolation (MFI) is used to estimate one concealment displacement per pel of the damaged block. Each pel is then concealed individually. In this case, incorrect estimation of a concealment displacement will affect only the corresponding pel. On a block level, this may affect few pels rather than the entire block. In the second technique, multihypothesis motion compensation (MHMC) is used to combine the first technique with a boundary matching (BM) temporal concealment technique to obtain a more robust performance.
The chapter also investigates the performance of different temporal error concealment techniques when incorporated within a multiple-reference video codec. In particular, the chapter finds a combination of techniques that best recovers the spatial-temporal components of a damaged multiple-reference motion vector. In addition, the chapter describes the design of a novel multihypothesis temporal concealment technique that can be used with multiple-reference systems.
The rest of the chapter is organized as follows. Section 10.2 describes the MFI temporal concealment technique, whereas Section 10.3 presents the combined BM-MFI technique. Section 10.4 presents some simulation results. Section 10.5 investigates the performance of temporal error concealment within multiple-reference video codecs. It also describes the multihypothesis multiple-reference temporal concealment technique. The chapter concludes with a discussion in Section 10.6.
Preliminary results of this chapter have appeared in Refs. 204, 205, 206, 207, and 208.
Read full chapter
URL:
https://www.sciencedirect.com/science/article/pii/B9780120530793500123
Digital Video Transcoding
Shizhong Liu, Alan C. Bovik, in Handbook of Image and Video Processing (Second Edition), 2005
5 Error-Resilient Video Transcoding
With the emergence of various advanced wireless networks such as 3G cellular systems, wireless video has become increasingly popular and is attracting great interest [38–40]. Transmitting coded video stream over wireless channels is even more challenging than over wired channels since wireless channels usually have lower bandwidth and higher bit error rates than wired channels.
Error-resilient video transcoding increases the error resilience of a video stream to produce acceptable video quality at the receiver side. For example, the authors in [8] proposed an error-resilient transcoding technique that is built on three fundamental blocks:
- 1.
-
Increase the spatial resilience by reducing the number of macroblocks per slice and enhance the temporal resilience by increasing the proportion of intracoded macroblocks in each frame. The amount of resilience is tailored to the content of the video and the prevailing error conditions, as characterized by bit error rate.
- 2.
-
Derive an analytic model that characterizes how the bit errors propagate in a video that is compressed using motion-compensated encoding and subjected to bit errors.
- 3.
-
Compute the optimal bit allocation between spatial resilience, temporal resilience, and video signal itself so that an optimal resilience will be injected into the video stream.
In [7], the authors presented a novel fully comprehensive mobile video communication system that exploits the useful rate management features of the video transcoders and combines them with error resilience for transmissions of coded video streams over general packet radio service (GPRS) mobile access networks. The error-resilient video transcoding operation takes place in a video proxy, which not only performs bit rate adaptation but also increases error resilience. In the proposed system, two resilience schemes are used, which are adaptive intrarefresh (AIR) and feedback control signaling (FCS) methods. These two schemes can work independently or combined. The system adjusts the output bit rate from the proxy by monitoring the current channel conditions such as bit error rate, delay, and so forth. Meanwhile, the amount of resilience added to the video data can also be controlled by monitoring the proxy output rate and the change in the error conditions of the network connection. AIR is mainly used to stop the error propagation across different frames. Experiments showed that the combined AIR-FCS method gave superior transcoding performances over error-prone GPRS channels relative to nonresilient video streams.
Read full chapter
URL:
https://www.sciencedirect.com/science/article/pii/B978012119792650111X
Video coding standards and formats
David R. Bull, Fan Zhang, in Intelligent Image and Video Compression (Second Edition), 2021
H.263 extensions (H.263+ and H.263++)
H.263 Version 2, also known as H.263+, was standardized in 1998 and extends H.263 with many new modes and features that further improve compression efficiency. H.263++ (Version 3) provided still further enhancements in 2000. The 12 new modes in H.263+ improve coding gain, improve error resilience, enable scalable bitstreams, introduce flexibility in picture size and clock frequency, and provide supplemental display capabilities. Many of these new modes were pulled through into the later H.264/AVC standard.
Firstly, several new modes to support error resilience were introduced and these are summarized below. We have covered many of these already in Chapter 11 and they are also reviewed by Wenger et al. in [9].
- •
-
Slice-Structured Mode (Annex K): In this mode, the GOB structure is replaced by a set of slices. All macroblocks in one slice can be decoded independently since prediction dependencies are not permitted across slice boundaries.
- •
-
Independent Segment Decoding Mode (Annex R): A segment boundary acts in the same way as a picture boundary. A segment can be a slice, a GOB, or a collection of GOBs, and the shape of a segment must be identical from frame to frame. Independent segments support error resilience as error propagation is eliminated between defined parts of the picture. They also enable special effects in a similar manner to the object planes in MPEG-4.
- •
-
Reference Picture Selection Mode (Annex N): As described in Chapter 11, this allows flexibility in the choice of reference picture. It is also possible to apply the reference picture selection mode to individual segments rather than to full pictures. This mode supports error resilience if a feedback channel exists, but is also a precursor to the multiple reference frame methods used in H.264 and HEVC.
- •
-
Temporal, SNR, and Spatial Scalability Mode (Annex O): This mode introduced layering into the H.263 standard to support flexibility in delivery to terminals of different capabilities and in congestion management. As discussed in Chapter 11, a scalable bitstream comprises a base layer and enhancement layers, where the base layer provides an acceptable level of quality which can be further enhanced by the other layers (in terms of improved signal to noise ratio [SNR], improved temporal resolution, or improved spatial resolution) if they are available.
Other H.263 modes that support enhanced coding gain are:
- •
-
Advanced Intra-coding Mode (Annex I),
- •
-
Modified Unrestricted Motion Vectors Mode (Annex D),
- •
-
Improved PB-frames Mode (Annex M),
- •
-
Deblocking Filter Mode (Annex J),
- •
-
Reference Picture Resampling Mode (Annex P),
- •
-
Reduced-Resolution Update Mode (Annex Q),
- •
-
Alternative Inter VLC Mode (Annex S),
- •
-
Modified Quantization Mode (Annex T).
Finally one mode was introduced to provide additional bitstream information:
- •
-
Supplemental Enhancement Information Mode (Annex L): This enables the incorporation of additional information that may or may not be decodable by a specific decoder, such as chroma keying, time segments, picture freezing, and picture resizing.
H.263++ provided further enhancements to H.263 in terms of introducing a range of nine profiles and seven levels similar to those in MPEG-2. The profiles enabled formalization of specific combinations of modes to support different application scenarios (e.g., Baseline and Wireless). The levels enabled matching of coder performance to environmental constraints (e.g., maximum bit rate, spatial resolution, etc.). It also introduced some new modes and revised others – a Data Partitioned Slice Mode (Annex V), Additional Supplemental Enhancement Information (Annex W), and an Enhanced Reference Picture Selection Mode (Annex U).
Read full chapter
URL:
https://www.sciencedirect.com/science/article/pii/B9780128203538000219
Introduction to Error Resilience
Mohammed Ebrahim Al-Mualla, … David R. Bull, in Video Coding for Mobile Communications, 2002
Chapter 10 gives examples of the development of error-resilience techniques. The chapter presents two temporal error concealment techniques. The first technique, MFI, is based on motion field interpolation, whereas the second technique, BM-MFI, uses multihypothesis motion compensation (MHMC) to combine MFI with a boundary matching (BM) technique. The techniques are then tested within both an isolated test environment and an H.263 codec. The chapter also investigates the performance of different temporal error concealment techniques when incorporated within a multiple-reference video codec. In particular, the chapter finds a combination of techniques, MFI-BM, that best recovers the spatial-temporal components of a damaged multiple-reference motion vector. In addition, the chapter develops a multihypothesis temporal concealment technique, called MFI-MH, to be used with multiple-reference systems.
Read full chapter
URL:
https://www.sciencedirect.com/science/article/pii/B9780120530793500238
Error-Resilience Video Coding Techniques
Mohammed Ebrahim Al-Mualla, … David R. Bull, in Video Coding for Mobile Communications, 2002
9.6.3.2 The Error-Resilience Entropy Code (EREC)
An interesting alternative to inserting resynchronisation codewords is the error resilience entropy code (EREC) [177, 185]. The EREC takes variable-length blocks of data and rearranges them into fixed-length slots. For example, assume that there are N variable-length blocks with lengths bi, i = 1 … N. The encoder first chooses a total data size T ≥ Σ bi, which is sufficient to encode all the data. This total data size is split into N slots of fixed lengths si, i = 1 … N. An N-stage algorithm is then used to place the data from the variable-length blocks into the fixed-length slots. At each stage n, a block i with data left unplaced searches slot j = i + ϕn (mod N) for space to place some or all of the remaining data. Here, ϕn is an offset sequence that is usually pseudo-random.
Figure 9.5 shows an example of the EREC algorithm. In this case, there are N = 6 variable-length blocks, with lengths 11, 9, 4, 3, 9, and 6 bits. The total data size is chosen as T = 42 and is divided into N = 6 slots, with a length of si = 7 bits each. The offset sequence is ϕn = {0, 1, 2, 3, 4, 5, 6}. In stage 1 of the algorithm, blocks 3, 4, and 6 are completely placed into the corresponding slots, with some leftover space in those slots. Blocks 1, 2, and 5, however, are only partially placed in the corresponding slots and have some bits left to be placed in empty spaces in other slots. According to the offset sequence, block 1 searches slot 2 for empty space, block 2 searches slot 3, and block 5 searches slot 6. Both blocks 2 and 5 find empty spaces. Thus, in stage 2, all the remaining bits from block 2 are placed in slot 3, whereas some of the remaining bits of block 5 are placed in slot 6. Since block 1 did not find empty spaces in slot 2, then, according to the offset sequence, it searches slot 3, and so on. By the end of stage 6, all data bits are placed in the slots. The decoder operates in a similar manner. Thus bits in a slot are decoded and placed in a block until an end-of-block codeword is encountered.
Figure 9.5. Example of the EREC algorithm
In the presence of errors, the resilience provided by the EREC algorithm is due to two factors. First, each block starts at a known position in the bitstream (i.e., the start of the corresponding slot). Thus, in the case of loss of synchronization, the decoder simply jumps to the start of the next slot without the need for resynchronization codewords. Second, subjectively less important data (e.g., high-frequency DCT coefficients) are usually placed in later stages of the algorithm. With the EREC algorithm, most error propagation effects (due, for example, to missing or falsely detecting end-of-block codewords) hit data placed at later stages of the algorithm rather than the more important data at the start of the slots.
Read full chapter
URL:
https://www.sciencedirect.com/science/article/pii/B9780120530793500111
The MPEG-4 Video Standard Verification Model
Thomas SikoraSenior Member, IEEE, in Readings in Multimedia Computing and Networking, 2002
C. Coding Efficiency
Besides the provision for new content-based functionalities and error resilience and robustness, the coding of video with very high coding efficiency over a range of bit rates continues to be supported for the MPEG-4 standard. As indicated above, the MPEG-4 Video VM allows the single object-layer (single VOP) coding approach as a special case. In this coding mode, the single VOP input image sequence format may be rectangular as depicted in Fig. 7 (thus not segmented into several VOP’s), and the MPEG-4 Video VM coding algorithm can be made almost compatible to the ITU-H.263 or ISO-MPEG-1 standards. Most of the coding techniques used by the MPEG-2 standard at Main Profile are also supported. A number of motion compensation and texture coding techniques are being investigated in the Core Experiment process to further improve coding efficiency for a range of bit rates, including bit rates below 64 kb/s.
Read full chapter
URL:
https://www.sciencedirect.com/science/article/pii/B9781558606517500978
Toward Practical Implementations
Pierre Duhamel, Michel Kieffer, in Joint Source-Channel Decoding, 2010
6.4.5 Objective Adjustment of the Efficiency-Complexity Tradeoff
In sequential algorithms, the decoding performance in terms of error resilience efficiency is improved when more paths are explored in the decoding tree; however, this improvement goes with increased decoding complexity. To adjust a tradeoff between decoding complexity and efficiency, this section introduces some test to decide whether a path is worth being expanded by the MA or SA.
Consider a path of v – 1 bits corresponding to b1:v–1. In a bit-by-bit exploration, this path may be extended with bv = 0 and bv = 1. Assume that both extended paths correspond to prefixes of sequences in Ωn. A hard decoder discards systematically one of them and, thus, explores only one path in the decoding tree. The idea is to derive a test allowing to decide if both of the two choices deserve being considered or if a hard decision on the current bit is sufficient.
Focusing on the bit-by-bit exploration, Pettijohn et al. (2001) proposed to determine if
(6.51)Λv=logP(Bv=0|yv)P(Bv=1|yv)
belongs to [–Δ, Δ], in which case the two paths are followed. Otherwise, if Λv > Δ, only the path with bv = 0 is kept, and if Λv < – Δ, only that with bv = 1 is kept. This idea has been refined by Ben-Jamaa et al. (2009), where Δ is adjusted depending on the channel conditions and on some parameter α.
Assuming that P(Bv = 0) = P(Bv = 1), the probability of losing the correct path Pe is
(6.52)Pe=12(P(Λv<−Δ|Bv=0)+P(Λv>Δ|Bv=1)).
In what follows, the bvs are assumed to be mapped into a BPSK symmetric signaling ±Eb and transmitted over an AWGN channel with noise variance N0/2. Then,
(6.53)Pe=12(1−erf(EbN0(ΔN04Eb+1))),
where
(6.54)erf(z)=2π∫0ze−t2dt.
The threshold Δ may then be expressed as a function of Eb/N0 and Pe as
(6.55)Δ(Eb/N0,Pe)=max{4EbN0((erf−1(1−2Pe))−EbN0),0}.
Several choices may then be considered for Pe. For example, one may take
(6.56)Pe(Eb/N0)=αPh(Eb/N0),withα<1,
where Ph(Eb/N0) is the probability that the hard decoder locally fails, expressed in the AWGN case as
(6.57)Ph(Eb/N0)=12(1−erf(EbN0));
see Proakis (2001). The parameter α allows one to adjust the decoding complexity-efficiency tradeoff, as discussed in Section 6.4.6.
Figure 6.11 represents the evolution of Δ for several values of Pe as a function of Eb/N0. The values of Eb/N0 at which Δ = 0 are those at which a hard decoder produces a probability of error equal to Pe.
Figure 6.11. Evolution of Δ as a function of Eb/N0 for several values of Pe.
Read full chapter
URL:
https://www.sciencedirect.com/science/article/pii/B9780123744494000015
MPEG-4, H.264/AVC, and MPEG-7: New Standards for the Digital Video Industry
Berna Erol, … Gary Sullivan, in Handbook of Image and Video Processing (Second Edition), 2005
3.1.7 Error Resilience
To ensure robust operation over error-prone channels, MPEG-4 Part 2 offers a suite of error-resilience tools that can be divided into three groups: resynchronization, data partitioning, and data recovery [8, 22]. Resynchronization is enabled by the MPEG-4 Part 2 syntax, which supports a video packet structure that contains resynchronization markers and information such as macroblock number and quantizer in the header. All of these are necessary to restart the decoding operation in case an error is encountered. Data partitioning allows the separation between the motion and texture data, along with additional resynchronization markers in the bitstream to improve the ability to localize the errors. This technique provides enhanced concealment capabilities. For example, if texture information is lost, motion information can be used to conceal the errors. Data recovery is supported in MPEG-4 Part 2 by reversible variable-length codes for DCT coefficients and a technique known as new prediction (NEWPRED). Reversible variable length codes for DCT coefficients can be decoded in forward and backward directions. Thus, if part of a bitstream cannot be decoded in the forward direction due to errors, some of the coefficient values can be recovered by decoding the coefficient part of the bitstream in the backward direction. NEWPRED, which is a method intended for real-time encoding applications, makes use of an upstream channel from decoder to encoder, where the encoder dynamically replaces the reference pictures according to the error conditions and feedback received from the decoder [6].
Read full chapter
URL:
https://www.sciencedirect.com/science/article/pii/B9780121197926501133
Устойчивость
к ошибкам— это мера способности системы
программного обеспечения продолжать
функционирование при наличии ошибок.
Обеспечение
устойчивости программы к ошибкам
означает, что в программе содержатся
средства, позволяющие локализовать
область влияния отказа программы, либо
уменьшить его неприятные последствия,
а иногда предотвратить катастрофические
последствия отказа. Однако, эти подходы
используются весьма редко (может быть,
относительно чаще используется
обеспечение устойчивости к ошибкам).
Связано это, во-первых, с тем, что многие
простые методы, используемые в технике
в рамках этих подходов, неприменимы в
программировании, например, дублирование
отдельных блоков и устройств (выполнение
двух копий одной и той же программы
всегда будет приводить к одинаковому
эффекту — правильному или неправильному).
А, во-вторых, добавление в программу
дополнительных средств приводит к её
усложнению (иногда — значительному),
что в какой-то мере мешает методам
предупреждения ошибок.
59. Раскрыть понятие динамической избыточности
Истоки
концепции динамической избыточности
лежат в проектировании аппаратного
обеспечения. Один из подходов к
динамической избыточности — метод
голосования. Данные обрабатываются
независимо несколькими идентичными
устройствами, и результаты сравниваются.
Если большинство устройств выработало
одинаковый результат, этот результат
и считается правильным. И опять, вследствие
особой природы ошибок в программном
обеспечении ошибка, имеющаяся в копии
программного модуля, будет также
присутствовать во всех других его
копиях, поэтому идея голосования
здесь, видимо, неприемлема. Предлагаемый
иногда подход к решению этой проблемы
состоит в том, чтобы иметь несколько
неидентичных копий модуля. Это значит,
что все копии выполняют одну и ту же
функцию, но либо реализуют различные
алгоритмы, либо созданы разными
разработчиками. Этот подход
бесперспективен по следующим причинам.
Часто трудно получить существенно
разные версии модуля, выполняющие
одинаковые функции. Кроме того, возникает
необходимость в дополнительном
программном обеспечении для организации
выполнения этих версий параллельно или
последовательно и сравнения
результатов. Это дополнительное
программное обеспечение повышает
уровень сложности системы, что, конечно,
противоречит основной идее предупреждения
ошибок — стремиться в первую очередь
минимизировать сложность.
Второй
подход к динамической избыточности —
выполнять эти запасные копии только
тогда, когда результаты, полученные с
помощью основной копии, признаны
неправильными. Если это происходит,
система автоматически вызывает запасную
копию. Если и ее результаты неправильны,
вызывается другая запасная копия и т.
д.
60. Аналитические модели надежности
Модели
надежности программных средств (МНПС)
подразделяются на аналитические
и эмпирические.
Аналитические модели дают возможность
рассчитать количественные показатели
надежности, основываясь на данных о
поведении программы в процессе
тестирования (измеряющие и оценивающие
модели).
Аналитическое
моделирование надежности
ПС включает
четыре
шага:
1)
определение предположений, связанных
с процедурой тестирования
ПС;
2)
разработка или выбор аналитической
модели, базирующейся
на предположениях о процедуре тестирования;
3)
выбор параметров моделей с использованием
полученных данных;
4)
применение модели — расчет количественных
показателей надежности
по модели.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Устойчивость
к ошибкам— это мера способности системы
программного обеспечения продолжать
функционирование при наличии ошибок.
Обеспечение
устойчивости программы к ошибкам
означает, что в программе содержатся
средства, позволяющие локализовать
область влияния отказа программы, либо
уменьшить его неприятные последствия,
а иногда предотвратить катастрофические
последствия отказа. Однако, эти подходы
используются весьма редко (может быть,
относительно чаще используется
обеспечение устойчивости к ошибкам).
Связано это, во-первых, с тем, что многие
простые методы, используемые в технике
в рамках этих подходов, неприменимы в
программировании, например, дублирование
отдельных блоков и устройств (выполнение
двух копий одной и той же программы
всегда будет приводить к одинаковому
эффекту — правильному или неправильному).
А, во-вторых, добавление в программу
дополнительных средств приводит к её
усложнению (иногда — значительному),
что в какой-то мере мешает методам
предупреждения ошибок.
59. Раскрыть понятие динамической избыточности
Истоки
концепции динамической избыточности
лежат в проектировании аппаратного
обеспечения. Один из подходов к
динамической избыточности — метод
голосования. Данные обрабатываются
независимо несколькими идентичными
устройствами, и результаты сравниваются.
Если большинство устройств выработало
одинаковый результат, этот результат
и считается правильным. И опять, вследствие
особой природы ошибок в программном
обеспечении ошибка, имеющаяся в копии
программного модуля, будет также
присутствовать во всех других его
копиях, поэтому идея голосования
здесь, видимо, неприемлема. Предлагаемый
иногда подход к решению этой проблемы
состоит в том, чтобы иметь несколько
неидентичных копий модуля. Это значит,
что все копии выполняют одну и ту же
функцию, но либо реализуют различные
алгоритмы, либо созданы разными
разработчиками. Этот подход
бесперспективен по следующим причинам.
Часто трудно получить существенно
разные версии модуля, выполняющие
одинаковые функции. Кроме того, возникает
необходимость в дополнительном
программном обеспечении для организации
выполнения этих версий параллельно или
последовательно и сравнения
результатов. Это дополнительное
программное обеспечение повышает
уровень сложности системы, что, конечно,
противоречит основной идее предупреждения
ошибок — стремиться в первую очередь
минимизировать сложность.
Второй
подход к динамической избыточности —
выполнять эти запасные копии только
тогда, когда результаты, полученные с
помощью основной копии, признаны
неправильными. Если это происходит,
система автоматически вызывает запасную
копию. Если и ее результаты неправильны,
вызывается другая запасная копия и т.
д.
60. Аналитические модели надежности
Модели
надежности программных средств (МНПС)
подразделяются на аналитические
и эмпирические.
Аналитические модели дают возможность
рассчитать количественные показатели
надежности, основываясь на данных о
поведении программы в процессе
тестирования (измеряющие и оценивающие
модели).
Аналитическое
моделирование надежности
ПС включает
четыре
шага:
1)
определение предположений, связанных
с процедурой тестирования
ПС;
2)
разработка или выбор аналитической
модели, базирующейся
на предположениях о процедуре тестирования;
3)
выбор параметров моделей с использованием
полученных данных;
4)
применение модели — расчет количественных
показателей надежности
по модели.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Повышение эффективности функционирования предприятий невозможно без внедрения современных методов управления, базирующихся на автоматизированных информационных системах (АИС) управления предприятиями. Одними из самых серьезных проблем программного обеспечения (ПО) АИС является его дороговизна и низкая надежность. Многие специалисты считают первый из этих недостатков продолжением второго. Поскольку программное обеспечение по самой своей природе ненадежно, его тестирование и сопровождение требует постоянных существенных расходов.
Дадим определение основных понятий надежности ПО в соответствии с классической работой Г. Майерса:
- В программном обеспечении имеется ошибка, если оно не выполняет того, что пользователю разумно от него ожидать.
- Отказ программного обеспечения — это появление в нем ошибки.
- Надежность программного обеспечения — вероятность его работы без отказов в течении реки определенного периода Времени, рассчитанного с учетом стоимости для пользователя каждого отказа.
Из данных определений можно сделать важные выводы:
- Надежность программного обеспечения является не только внутренним свойством программы.
- Надежность программного обеспечения — это функция как самого ПО, так и ожиданий (действий) его пользователей.
Основными причинами ошибок программного обеспечения являются:
- Большая сложность ПО, например, по сравнению с аппаратурой ЭВМ.
- Неправильный перевод информации из одного представления в другое на макро- и микроуровнях. На макроуровне, уровне проекта, осуществляется передача и преобразование различных видов информации между организациями, подразделениями и конкретными исполнителями на всех этапах жизненного цикла ПО. На микроуровне, уровне исполнителя, производится преобразование информации по схеме: получить информацию — запомнить — выбрать из памяти (вспомнить) — воспроизвести информацию (передать).
Источниками ошибок (угрозами надежности) программного обеспечения являются:
- Внутренние: ошибки проектирования, ошибки алгоритмизации, ошибки программирования, недостаточное качество средств защиты, ошибки в документации.
- Внешние: ошибки пользователей, сбои и отказы аппаратуры ЭВМ, искажение информации в каналах связи, изменения конфигурации системы.
Методы проектирования надежного программного обеспечения можно разбить на следующие группы:
- Предупреждение ошибок, методы позволяющие минимизировать или исключить появление ошибки.
- Обнаружение ошибок, методы, направленные на разработку дополнительных функций программного обеспечения, помогающих выявить ошибки.
- Устойчивость к ошибкам, дополнительные функции программного обеспечения, предназначенные для исправления ошибок и их последствий и обеспечивающие функционирование системы при наличии ошибок.
Методы предупреждения ошибок концентрируются на отдельных этапах процесса продектирования программного обеспечения и включают в себя:
- Методы, позволяющие справиться со сложностью системы.
- Методы достижения большей точности при переводе информации.
- Методы улучшения обмена информацией.
- Методы немедленного обнаружения и устранения ошибок на каждом шаге (этапе) проектирования, не откладывая их на этап тестирования программы.
Сложность системы является одной из главных причин низкой надежности программного обеспечения. В общем случае, сложность объекта является функцией взаимодействия (количества связей) между его компонентами. В борьбе со сложностью ПО используются две концепции:
- Иерархическая структура. Иерархия позволяет разбить систему по уровням понимания (абстракции, управления). Концепция уровней позволяет анализировать систему, скрывая несущественные для данного уровня детали реализации других уровней. Иерархия позволяет понимать, проектировать и описывать сложные системы.
- Независимость. В соответствии с этой концепцией, для минимизации сложности, необходимо максимально усилить независимость элементов системы.
Это означает такую декомпозицию системы, чтобы её высокочастотная динамика была заключена в отдельных компонентах, а межкомпонентные взаимодействия (связи) описывали только низкочастотную динамику системы. Методы обнаружения ошибок базируются на введении в программное обеспечение системы различных видов избыточности:
- Временная избыточность. Использование части производительности ЭВМ для контроля исполнения и восстановления работоспособности ПО после сбоя.
- Информационная избыточность. Дублирование части данных информационной системы для обеспечения надёжности и контроля достоверности данных.
- Программная избыточность включает в себя: взаимное недоверие — компоненты системы проектируются, исходя из предположения, что другие компоненты и исходные данные содержат ошибки, и должны пытаться их обнаружить; немедленное обнаружение и регистрацию ошибок; выполнение одинаковых функций разными модулями системы и сопоставление результатов обработки; контроль и восстановление данных с использованием других видов избыточности.
Методы обеспечения устойчивости к ошибкам направлены на минимизацию ущерба, вызванного появлением ошибок, и включают в себя:
- обработку сбоев аппаратуры;
- повторное выполнение операций;
- динамическое изменение конфигурации;
- сокращенное обслуживание в случае отказа отдельных функций системы;
- копирование и восстановление данных;
- изоляцию ошибок.
Важным этапом жизненного цикла программного обеспечения, определяющим качество и надёжность системы, является тестирование. Тестирование — процесс выполнения программ с намерением найти ошибки. Этапы тестирования:
- Автономное тестирование, контроль отдельного программного модуля отдельно от других модулей системы.
- Тестирование сопряжений, контроль сопряжений (связей) между частями системы (модулями, компонентами, подсистемами).
- Тестирование функций, контроль выполнения системой автоматизируемых функций.
- Комплексное тестирование, проверка соответствия системы требованиям пользователей.
- Тестирование полноты и корректности документации, выполнение программы в строгом соответствии с инструкциями.
- Тестирование конфигураций, проверка каждого конкретного варианта поставки (установки) системы.
Существуют две стратегии при проектировании тестов:
тестирование по отношению к спецификациям (документации), не заботясь о тексте программы, и тестирование по отношению к тексту программы, не заботясь о спецификациях. Разумный компромисс лежит где-то посередине, смещаясь в ту или иную сторону в зависимости от функций, выполняемых конкретным модулем, комплексом или подсистемой.
Качество подготовки исходных данных для проведения тестирования серьёзно влияет на эффективность процесса в целом и включает в себя:
- техническое задание;
- описание системы;
- руководство пользователя;
- исходный текст;
- правила построения (стандарты) программ и интерфейсов;
- критерии качества тестирования;
- эталонные значения исходных и результирующих данных;
- выделенные ресурсы, определяемые доступными финансовыми средствами.
Однако, исчерпывающее тестирование всех веток алгоритма любой серьёзной программы для всех вариантов входных данных
практически неосуществимо. Следовательно, продолжительность этапа тестирования является вопросом чисто экономическим. Учитывая, что реальные ресурсы любого проекта ограничены бюджетом и графиком, можно утверждать, что искусство тестирования заключается в отборе тестов с максимальной отдачей.
Ошибки в программах и данных могут проявиться на любой стадии тестирования, а также в период эксплуатации системы. Зарегистрированные и обработанные сведения должны использоваться для выявления отклонений от требований заказчика или технического задания. Для решения этой задачи используется система конфигурационного управления версиями программных компонент, база документирования тестов, результатов тестирования и выполненных корректировок программ. Средства накопления сообщений об отказах, ошибках, предложениях на изменения, выполненных корректировках и характеристиках версий являются основной для управления развитием и сопровождением комплекса ПО и состоят из журналов:
- предлагаемых изменений;
- найденных дефектов;
- утвержденных корректировок;
- реализованных изменений;
- пользовательских версий.
ПРИМЕР:
Рассмотрим применение описанных выше методов повышения надёжности программного обеспечения при разработке автоматизированной информационной системы комбината хлебопродуктов (АИС КХП).
Предупреждение ошибок — лучший путь повышения надёжности программного обеспечения. Для его реализации была разработана методика проектирования систем управления предприятиями, соответствующая спиральной модели жизненного цикла ПО. Методика предусматривает последовательное понижение сложности на всех этапах анализа объекта. При декомпозиции АИС были выделены уровни управления системы, затем подсистемы, комплексы задач и так далее, вплоть до отдельных автоматизируемых функций и процедур. Методика базируется на методах структурно-функционального анализа (SADT), диаграммах потоков данных (DFD), диаграммах «сущность-связь» (ERD), методах объектно-ориентированного анализа (OOA) и проектирования (OOD).
На основании методов обнаружения ошибок были разработаны следующие средства повышения надёжности ПО:
- Средства, использующие временную избыточность: авторизация доступа пользователей к системе, анализ доступных пользователю ресурсов, выделение ресурсов согласно ролям и уровням подготовки пользователей, разграничение прав доступа пользователей к отдельным задачам, функциям управления, записям и полям баз данных.
- Средства обеспечения надёжности, использующие информационную избыточность: ссылочная целостность баз данных обеспечивается за счёт системы внутренних уникальных ключей для всех информационных записей системы, открытая система кодирования, позволяющая пользователю в любой момент изменять коды любых объектов классификации, обеспечивает стыковку системы классификации АИС КХП с ПО других разработчиков, механизмы проверки значений контрольных сумм записей системы, обеспечивают выявление всех несанкционированных модификаций (ошибок, сбоев) информации, средства регистрации обеспечивают хранение информации о пользователе и времени последней модификации (ввода, редактирования, удаления) и утверждения каждой записи информационной системы, введение в структуры баз данных системы времени начала и окончания участия записи в расчётах позволяет ограничить объём обрабатываемой информации на любом заданном периоде, а также обеспечить механизмы блокировки информации для закрытых рабочих переводов, ведение служебных полей номеров версий баз данных и операционных признаков записей позволяет контролировать и предупреждать пользователей о конфликтах в случае несоответствия номеров версий модулей и структур баз, либо о нарушении технологических этапов обработки информации, средства автоматического резервного копирования и восстановления данных (в начале, конце сеанса работы или по запросу пользователей) обеспечивают создание на рабочей станции клиента актуальной копии сетевой базы данных, которая может быть использована в случае аварийного сбоя аппаратуры локальной и вычислительной сети и перехода на локальный режим работы и обратно.
- Средства обеспечения надёжности, использующие программную избыточность: распределение реализации одноименных функций по разным модулям АИС КХП с использованием разных алгоритмов и системы накладываемых ограничений и возможностью сравнения полученных результатов; специальные алгоритмы пересчётов обеспечивают в ручном и автоматическом режимах переформирование групп документов, цепочек порождаемых документов и бухгалтерских проводок, что повышает эффективность и надёжность обработки информации; средства обнаружения и регистрации ошибок в сетевом и локальных протоколах; в программные модули системы встроены средства протоколирования процессов сложных расчётов с выдачей подробной диагностики ошибок; средства отладки и трассировки алгоритмов пользовательских бизнес-функций.
- Средства обеспечивающие устойчивость системы к ошибкам: процедура обработки сбоев обеспечивает в автоматическом режиме несколько попыток повторного выполнения операций прежде, чем выдать пользователю сообщение об ошибке (например, для операций раздельного доступа к ресурсам, операций блокировки информации или обращения к внешним устройствам); средства динамического изменения конфигурации осуществляют контроль доступа к сетевым ресурсам, а в случае их недоступности или конфликта обеспечивают автоматический запуск системы по альтернативным путям доступа; средства контроля и обслуживания данных обеспечивают восстановление заголовков баз данных, восстановление индексных файлов, конвертацию модифицированных структур баз данных; средства слияния, копирования, архивирования и восстановления данных.
Для обеспечения качества программного обеспечения АИС КХП на этапе развития и сопровождения системы разработан комплекс программных средств, обеспечивающий:
- управление версиями ПО;
- регистрацию поставок;
- сопровождение заявок клиентов.
Использование рассмотренных методов и средств обеспечения надёжности при проектировании и сопровождении автоматизированной информационной системы комбината хлебопродуктов обеспечило высокий уровень надёжности системы, необходимый для одновременной работы десятков пользователей производственной системы управления в реальном масштабе времени.
А.2.2.2 Устойчивость к ошибке (Fault tolerance)
Атрибуты программного обеспечения, относящиеся к его способности поддерживать определенный уровень качества функционирования в случаях программных ошибок или нарушения определенного интерфейса.
Примечание — Определенный уровень качества функционирования включает возможность отказобезопасности.
Читайте также
Устойчивость функции printk()
Устойчивость функции printk()
Одно из проверенных и часто используемых свойств функции printk() — это ее устойчивость. Функцию printk() можно вызывать практически в любое время и в любом месте ядра. Её можно вызывать из контекста прерывания и из контекста процесса. Её можно
Как должно выглядеть сообщение об ошибке
Как должно выглядеть сообщение об ошибке
Главное, чтобы покупатель, увидев сообщение об ошибке, сразу понял, что и где нужно исправить. Хороший пример можно увидеть на сайте Banana Republic. Если вы пройдете по ссылке Access Your Info («Информация о пользователе»), которая расположена
8. Устойчивость и автоколебания
8. Устойчивость и автоколебания
Усилители, особенно состоящие из нескольких каскадов, могут быть устойчивы или входить в режим автоколебаний. Частота таких колебаний зависит от комбинации используемых компонентов, включая все паразитные индуктивности и емкости.
1.6.8. Правило устойчивости: устойчивость-следствие прозрачности и простоты
1.6.8. Правило устойчивости: устойчивость-следствие прозрачности и простоты
Программное обеспечение называют устойчивым, когда оно выполняет свои функции в неожиданных условиях, которые выходят за рамки предположений разработчика, столь же хорошо, как и в нормальных
1.6.8. Правило устойчивости: устойчивость — следствие прозрачности и простоты
1.6.8. Правило устойчивости: устойчивость — следствие прозрачности и простоты
Программное обеспечение называют устойчивым, когда оно выполняет свои функции в неожиданных условиях, которые выходят за рамки предположений разработчика, столь же хорошо, как и в нормальных
Шутка №8 — сообщение об ошибке, содержащее «мусор»
Шутка №8 — сообщение об ошибке, содержащее «мусор»
Восьмая шутка будет выводить сообщение об ошибке, но не простое, а содержащее огромное количество случайных чисел. Код этой шутки:for i:=1 to 200 do begin case i of //после каждого 25-го числа – перенос на новую строку 25,50,75,100,125,150,175,199:
Устойчивость
Устойчивость
Когда транзакция завершается, ее изменения должны быть устойчивыми — т. е. новое состояние всех объектов, видимых другим транзакциям после подтверждения, будет сохранено и будет постоянным, независимо от наличия ошибок в оборудовании или краха программного
А.2.5.3 Устойчивость (Stability)
А.2.5.3 Устойчивость (Stability)
Атрибуты программного обеспечения, относящиеся к риску от непредвиденных эффектов
Кафедра Ваннаха: География и устойчивость Ваннах Михаил
Кафедра Ваннаха: География и устойчивость
Ваннах Михаил
Опубликовано 31 октября 2011 года
Самым дешёвым устройством хранения информации, предоставленным нам технологической цивилизацией, остается жёсткий диск. Именно на нём живёт библиотека в
Устойчивость (Robustness)
Устойчивость (Robustness)
Определение: устойчивостьУстойчивость — это способность ПО соответствующим образом реагировать на аварийные ситуации.Устойчивость дополняет корректность. Корректность относится к поведению системы в случаях, определенных спецификацией;
Доставка почты прерывается сообщением об ошибке
Доставка почты прерывается сообщением об ошибке
Проверьте работоспособность подключения к Интернету, попытавшись загрузить какой-нибудь сайт в Internet Explorer. Посмотрите свойства учетной записи, особое внимание следует обратить на правильность имени пользователя и
Нет изображения при воспроизведении видео или появляется сообщение об ошибке загрузки кодека
Нет изображения при воспроизведении видео или появляется сообщение об ошибке загрузки кодека
Видеофильмы обычно записываются с применением различных технологий сжатия, и для воспроизведения подобных записей необходим кодек – специальный драйвер, который
Кафедра Ваннаха: География и устойчивость
Кафедра Ваннаха: География и устойчивость
Автор: Ваннах МихаилОпубликовано 31 октября 2011 годаСамым дешёвым устройством хранения информации, предоставленным нам технологической цивилизацией, остается жёсткий диск. Именно на нём живёт библиотека в «тяжёлых» графических